Batch file DOS FOR/F循环之后的任何内容都不执行

Batch file DOS FOR/F循环之后的任何内容都不执行,batch-file,cmd,dos,Batch File,Cmd,Dos,我在谷歌世界里进行了一次非常好的搜索,找到了一个与我类似的问题,但我找不到任何人在FOR/F循环之外做事情的例子,因此我不得不创建一个新的线程 我使用FOR/F循环在引用文件中找到的每一行执行一次Ruby Gem,这非常好。问题是,当它完成了对其引用文件的滚动并执行了正确次数的Ruby Gem时,它将无法完成FOR/F循环之外的.CMD文件中的任何其他内容 这是我的.CMD代码: FOR /F "tokens=1,2,3 delims=," %%a in (c:\cygwin\usr\work\

我在谷歌世界里进行了一次非常好的搜索,找到了一个与我类似的问题,但我找不到任何人在FOR/F循环之外做事情的例子,因此我不得不创建一个新的线程

我使用FOR/F循环在引用文件中找到的每一行执行一次Ruby Gem,这非常好。问题是,当它完成了对其引用文件的滚动并执行了正确次数的Ruby Gem时,它将无法完成FOR/F循环之外的.CMD文件中的任何其他内容

这是我的.CMD代码:

FOR /F "tokens=1,2,3 delims=," %%a in (c:\cygwin\usr\work\easy.lst) do (
c:\ruby191\bin\scrapitalist website -u http://www.website.com/%%a/%%c/%%b.html -o     C:\cygwin\usr\autobets\work\%%b_%%c.easy
)
copy c:\cygwin\usr\work\*.easy c:\cygwin\usr\autobets\work\easy.imp
easy.lst文件中有两行数据

循环工作正常,执行Ruby Gem并创建*.easy文件作为输出,但是COPY命令从不执行。我可以用回音或任何东西替换副本,但它不会执行

我看不出我的FOR/F语法缺少什么-有什么想法吗


谢谢

我想
scrapitalist
本身就是一个批处理文件,因此它会停止批处理文件,但随着FOR循环的缓存,它会一直工作到最后

要解决这个问题,您只需要一个
调用
作为前缀

FOR /F "tokens=1,2,3 delims=," %%a in (c:\cygwin\usr\work\easy.lst) do (
  call c:\ruby191\bin\scrapitalist website -u http://www.website.com/%%a/%%c/%%b.html -o     C:\cygwin\usr\autobets\work\%%b_%%c.easy
)
copy c:\cygwin\usr\work\*.easy c:\cygwin\usr\autobets\work\easy.imp

我可以推荐一个UNIX风格的shell吗?语法更强大,也更理智。看起来你已经安装了cygwin,那么为什么不直接使用它附带的bash shell呢?@tdammers这是一个合理的建议,但这也像是建议在OP需要汇编时使用C#编码,不管原因是什么。jeb-你完全正确,这解决了问题。恼人的是,我用“Call”命令试过了,所以我当时一定是犯了语法错误。Grrrr!非常感谢!