ДЛЯ / L В %SET% DO (… ) Ничего не делает, это просто повторяется?

#windows #batch-file

#Windows #пакетный файл

Вопрос:

Я создал пакетный скрипт, который выглядит следующим образом:

 set F=Project_idem.exe
set I=1
set M=solution
set NSET=(3 20 1)
FOR /L %%N IN %NSET% DO ( START "idem" %F% -mode %M% -iterations %I% %%N )
  

Что я хочу сделать, так это запустить Project_idem.exe в окне с именем «idem», где последним значением является целое число в 3,4, …, 20. Когда я запускаю файл, он выводит только строки? Вот так:

 FOR /L %N IN (3 20 1) DO (START "idem" Project_idem.exe -mode solution -iterations 1 %N )
  

И это не выполняет фактические итерации? Как мне заставить его запускать итерации? Операционная система XP.
Ок, решено… У меня был размер шага в неправильном месте. Это должно быть (3,1,20). Спасибо!!! (Не могу поверить, что я потратил на это час: D )

Комментарии:

1. Обычно я не помещаю команды ‘do’ в квадратные скобки — это разрешено?

2. Отлично! Вы должны щелкнуть галочку рядом с ответом Дэвида ниже, поскольку это решение.

Ответ №1:

На экране справки похоже, что это должно быть (3 1 20) вместо (3 20 1).

Комментарии:

1. тот же ответ, что и у меня, быстрее, заслуживает 1

Ответ №2:

Попробуйте отлаживать по одной проблеме за раз.

Смотрите HELP FOR

и попробуйте в командной строке,

 FOR /L %a IN (3 20 1) DO @ECHO %a
  

и сравните с

  FOR /L %a IN (3 1 20) DO @ECHO %a
  

Этот простой тест должен помочь вам начать.