尽管有 PAUSE 命令,但带有 FOR 循环的 CMD 批处理文件会立即关闭

CMD Batch file with FOR loop closes instantly despite having PAUSE command

我有这个批处理文件(GitRepoUpdate.bat)用于 运行ning git pull 命令,使用命令提示符在 GitDev 目录中循环 FOR

@ECHO OFF
:: This batch runs ' git pull ' command for all repos in C:/GitDev folder.

title Git Pull Batch
ECHO Running Git pull in every folder in GitDev

FOR /D %G in (C:\GitDev\*) Do cd %G & git pull & cd ..

ECHO Batch finished its job.
PAUSE

我将它保存为 .bat 文件,当我尝试 运行 它时(即使是作为管理员)它只是立即打开和关闭。 然而,当我删除批处理的代码部分时:

FOR /D %G in (C:\GitDev\*) Do cd %G & call git pull & cd ..

正确打开并显示:

Running Git pull in every folder in GitDev
Batch finished its job.
Press any key to continue . . . 

可能是我不知道它是如何工作的,但我想最后的 PAUSE 应该会阻止命令提示符关闭... 有什么想法吗?

编辑: 如果我粘贴此行,我忘了添加: FOR /D %G in (C:\GitDev\*) Do cd %G & git pull & cd .. 到命令提示符(在任何位置),它可以正常工作并完成它的工作。

由于我不记得的原因,批处理文件需要额外的变量百分比(请参阅下面的编辑)。
请尝试 FOR /D %%G in (C:\GitDev\*) Do cd %%G & call git pull & cd ..
编辑:批处理文件中需要额外的 %,请参阅 FOR 参考页 here 并注意参数部分。
如果您有兴趣,ss64.com 上有关于额外 % here 的解释。