Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 在批处理文件中嵌套For循环错误:此时未预料到Do_Windows_Batch File_Command Prompt - Fatal编程技术网

Windows 在批处理文件中嵌套For循环错误:此时未预料到Do

Windows 在批处理文件中嵌套For循环错误:此时未预料到Do,windows,batch-file,command-prompt,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 但是我得到了以下错

我不熟悉编写批处理文件。我正在努力做到以下几点

从名为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
但是我得到了以下错误。在这个时候,我们没有料到会这样做

有人能解释我错过了什么吗


谢谢,批处理文件不是自由形式的,大量的空白非常重要。例如,在这种情况下,您可以在一行中写入所有内容,但不能将其分散到多行中

另一个选项是显式使用块:

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
  )
)

批处理文件不是自由形式的,大量的空白非常重要。例如,在这种情况下,您可以在一行中写入所有内容,但不能将其分散到多行中

另一个选项是显式使用块:

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
  )
)

独立于已经解决的问题,您可以在读取文件的相同方式中实现令牌分离。另外,对于命令,空格作为默认分隔符,因此不需要
delims=“
”。即:

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

独立于已经解决的问题,您可以在读取文件的相同方式中实现令牌分隔。此外,FOR命令的默认分隔符为空格,因此不需要
delims=“
”。即:

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

我试着把所有的东西都排成一行。即使它不起作用嗨,乔伊,我很抱歉。成功了。但我得到了不同的错误。在我的文件中,我只有一行“good boy”,我将第二个for循环中的主体更改为echo%%B。我得到的结果是“good is not recogned as command”我尝试将所有内容都放在一行中。即使它不起作用嗨,乔伊,我很抱歉。成功了。但我得到了不同的错误。在我的文件中只有一行“good boy”,我将第二个for循环中的主体更改为echo%%B。我得到的结果是good不被识别为命令