2014-01-25 3 views
0

Я не понимаю, почему это приводит к возврату синтаксических ошибок. Может кто-нибудь взглянуть и рассказать мне, как я могу заставить его правильно работать.Ошибка синтаксиса в цикле пакетного сценария

для/L %% п в (1, 10, 100, 1000, 10000, 100000) делают ( TEST.EXE %% п )

+1

Если вы понимаете, почему вы спрашиваете? – FeliceM

+0

Я имел в виду, что не понял, извините. Я исправил это. – jax

ответ

1

ДЛЯ синтаксисе/L является for /L %%x in (start,step,end) do, который устанавливает %%x к начать для первого цикла, изменяет его пошагово для каждого цикла, пока не достигнет end.

удалите /L, если вы хотите запустить test.exe с содержимым списка.

1

Если вы хотите перебрать список значений, то вы хотите простой FOR без выбора:

@echo off 
for %%N in (1 10 100 1000 10000 100000) do echo %%N 

результат

1 
10 
100 
1000 
10000 
100000 

Если вы хотите перебрать диапазон чисел, то используйте параметр/L. Предложение IN требует три аргумента - startValue, инкремент и endValue

@echo off 
for /l %%N in (0 10 100) do echo %%N 

результат

0 
10 
20 
30 
40 
50 
60 
70 
80 
90 
100 

Ваш код с параметром/L и 6 значений в IN() пункт недействителен

+0

Хорошо, но если да, то – jax

+0

Хорошо спасибо. Но почему мне нужно написать весь оператор в одной строке? Для примера, @echo off для/l %% N in (0 10 100) do echo %% N Как я могу сделать это, используя многострочные линии. – jax

1

Чтобы ответить на вопрос о последующем вопросе, просто добавьте круглые скобки, чтобы добавить больше команд в цикл.

@echo off 
for /l %%N in (0 10 100) do (
    echo ======[A]====== 
    echo %%N 
    echo ======[B]====== 
) 
Смежные вопросы