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



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

@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 ..
EDIT:批处理文件中需要额外的%,请参阅此处的FOR参考页,并注意"参数"部分
如果您感兴趣,ss64.com上有关于额外%的解释。

最新更新