我是编写批处理文件的新手。我正在努力做到以下几点。
从名为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
但是我收到以下错误。在这个时候没有预料到。
有人可以解释我错过了什么。
由于
答案 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
)