在windows中更新文件夹中的所有git Repo

在windows中更新文件夹中的所有git Repo,windows,git,command-line,Windows,Git,Command Line,答案是linux命令行。我需要同样的Windows命令行。我使用创建了以下代码,但我的代码不起作用 for /D /r %i in (*.*) do (cd %i && echo %i && git pull && cd ..) 使现代化 从@SevenEleven的回答和@kostix的评论来看,以下是有效的 for /D %%i in (.\*) do (cd "%%i" && git pull && cd..

答案是linux命令行。我需要同样的Windows命令行。我使用创建了以下代码,但我的代码不起作用

for /D /r %i in (*.*) do (cd %i && echo %i && git pull && cd ..)
使现代化 从@SevenEleven的回答和@kostix的评论来看,以下是有效的

for /D %%i in (.\*) do (cd "%%i" && git pull && cd..)


这应该可以做到:

for /D %%i in (.\*) do (cd %%i && echo %%i && git pull && cd ..)
此脚本搜索当前目录(
中的/D%%i(.\*)
)的子目录。它会更改找到的每个目录(
cd%%i
),将其名称写入控制台(
echo%%i
),并执行
git pull


/r
也会搜索所有子目录。因为您不想搜索项目子目录,所以不需要这样做。如果搜索绝对路径,则可以删除
cd..

这应该可以完成以下任务:

for /D %%i in (.\*) do (cd %%i && echo %%i && git pull && cd ..)
此脚本搜索当前目录(
中的/D%%i(.\*)
)的子目录。它会更改找到的每个目录(
cd%%i
),将其名称写入控制台(
echo%%i
),并执行
git pull


/r
也会搜索所有子目录。因为您不想搜索项目子目录,所以不需要这样做。如果你搜索一个绝对路径,你可以去掉
cd..

@stat-r,需要注意的是
%%
是用于batcn文件的;如果您想首先在纯
cmd.exe
中测试此功能,请使用单个
%
。另一件事是,我会用双引号将每个
%%I
括起来,以捕捉目录名中可能包含空格的情况。@Stat-R是的,没错。这是因为相对路径。如果您在绝对路径中搜索,此示例应该在没有
cd..
@stat-r的情况下运行,需要注意的是
%%
用于batcn文件;如果您想首先在纯
cmd.exe
中测试此功能,请使用单个
%
。另一件事是,我会用双引号将每个
%%I
括起来,以捕捉目录名中可能包含空格的情况。@Stat-R是的,没错。这是因为相对路径。如果在绝对路径中搜索,则此示例在没有
cd..