嵌套在批处理文件中出现循环错误:此时出现意外情况

时间:2012-03-30 19:50:49

标签: windows batch-file command-prompt

我是编写批处理文件的新手。我正在努力做到以下几点。

从名为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 个答案:

答案 0 :(得分:2)

批处理文件不是自由格式,而且大量空白非常重要。例如,在这种情况下,你可以将它全部写在一行中,但你不能将它分散到几行。

另一种选择是明确使用块:

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 :(得分:1)

独立于已经解决的问题,您可以在读取文件的同一FOR中实现令牌分离。此外,FOR命令将空格作为默认分隔符,因此不需要delims= "。那就是:

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