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

3

我正在尝试编写一个批处理程序,从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个回答

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接