批处理文件中的循环意外停止

For loop in batch file stopping unwantedly

我有一个执行 for 循环的批处理文件,看起来像这样:

for /f %%F in ("%DIR%\*.xml") do something.exe --Option1=Value1 --Option2=Value2 ... --File="%%~fF"

其中"something"是一个不属于自己的黑盒子(不知道它是如何工作的,无法修改),它执行某些操作。 运行 是正确的,returns 是 "completed successfully" 消息,但是由于某些原因,它强制我的 for 循环停止并且 运行 我的批处理文件的下一行而不执行操作对于所有其余文件。

有什么方法可以强制它继续而不退出 for 循环吗?

您似乎想遍历文件名,请删除 /f 标志。

for %%G in ("%DIR%\*.xml") do ...

由于您的 doSomething 程序在完成其工作后终止,您将需要在单独的进程上启动 doSomething

只需将doSomething "%%~fF"改为

start "" programName "%%~fF"