批处理文件:for循环运行两次

时间:2014-01-29 11:45:01

标签: windows batch-file for-loop

我正在尝试编写一个从ini文件中提取参数值的批处理。问题是这个for循环迭代两次:

call:ini DW_LOADER_FeedsRootDir UDM_Folder
:ini
for /f "tokens=2 delims==" %%U in ('find "%~1=" DW_environmentConfig.ini') do (
 set %~2=%%U
)

批次不会在此行之后结束,并且其后面的所有命令也会重复两次。 我不能在循环后使用像'goto:eof'这样的命令。 有没有人知道为什么会这样?

1 个答案:

答案 0 :(得分:5)

当您使用CALL:INI时,批处理会调用您的函数,当它结束时,它将返回CALL命令点,然后再次转到:ini标签。

试一试:

call:ini DW_LOADER_FeedsRootDir UDM_Folder
goto:eof
:ini
for /f "tokens=2 delims==" %%U in ('find "%~1=" DW_environmentConfig.ini') do (set %~2=%%U)