batch file:for循环运行两次

我试图写一个从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'这样的命令。 有没有人有一个想法,为什么发生这种情况?

当你使用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)