windows - 批处理文件 : for loop running twice

标签 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”这样的命令。 有谁知道为什么会这样?

最佳答案

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

关于windows - 批处理文件 : for loop running twice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21430156/

相关文章:

c++ - 从调用堆栈中获取函数指针

windows - 批量写入文件

batch-file - 我如何让 Else 在 Batch 中工作?

for循环内的Javascript递归函数

arrays - Invoke-WebRequest : Cannot bind parameter 'Uri' . 无法转换“@{

python - 循环删除缺失值数量的列

windows - 如何使用 procdump -t -- 在进程终止时转储?

c# - 在 C# 中找出谁锁定了网络驱动器上的文件

c++ - QDockWidget 在启动时自动隐藏

windows - 语法命令错误