Вложенный цикл For в пакетном файле - PullRequest
0 голосов
/ 30 марта 2012

Я новичок в написании командных файлов.Я пытаюсь сделать следующее.

Чтение построчно из файла с именем list.txt, в котором есть два токена, разделенных пробелом, и в следующем цикле for я токенизирую и отправляю эти токены в качестве параметров в другой скрипт,

FOR /F %%i IN (C:\list.txt) DO

FOR /F "tokens=1,2 delims= " %%A IN (%%i) DO   
winscp.com /script=C:\myscript1.txt /parameter %%A  C:\%%B

Но я получаю следующую ошибку.До этого не ожидалось.

Может кто-нибудь объяснить, что мне не хватает.

Спасибо

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Пакетные файлы не являются свободной формой, и много пробелов имеет большое значение. Например, в этом случае, когда вы можете записать все это в одну строку, но вы не можете распределить ее по нескольким строкам.

Другим вариантом является явное использование блоков:

FOR /F %%i IN (C:\list.txt) DO (
  FOR /F "tokens=1,2 delims= " %%A IN (%%i) DO (
    winscp.com /script=C:\myscript1.txt /parameter %%A  C:\%%B
  )
)
1 голос
/ 31 марта 2012

Независимо от уже решенной проблемы, вы можете достичь разделения токенов в том же FOR, который читает файл.Кроме того, команда FOR имеет пробелы в качестве разделителей по умолчанию, поэтому delims= " не требуется.То есть:

FOR /F "tokens=1,2" %%A IN (C:\list.txt) DO  (
   winscp.com /script=C:\myscript1.txt /parameter %%A  C:\%%B
)
...