dos 递归遍历当前目录及子目录,并筛选出指定目录名称的路径,执行 git 命令

2017-06-16 13:16:03 +08:00
 dabao

小弟现想通过使用批处理遍历 Windows 中的 D:\Workspace 文件夹下所有文件夹,找到有.git 文件夹的目录,执行 git pull。不知是否可行,请各位赐教!

希望最好可以贴上批处理代码,谢谢各位兄弟姐妹啦!!!

3341 次点击
所在节点    Windows
8 条回复
yushiro
2017-06-16 13:30:55 +08:00
你的需求就不是正常的使用 git 流程,想想其他方法吧。
SourceMan
2017-06-16 13:38:32 +08:00
可以的,这个需求没问题,也很容易实现,刚好我会写呢
doublleft
2017-06-16 17:06:15 +08:00
>> 请说出你原始需求 <<

一键更新所有代码,不管有没有关联?
我猜测你如果是多个子系统组成的一个系统,可以 submodule 啊
momocraft
2017-06-16 17:11:53 +08:00
那自然是.. 能

不过 bash 这种能几行搞定的就算了,cmd 你可能要加钱或等好心人
guanaco
2017-06-16 17:14:55 +08:00
dir /a /s /d *.git 是要这个?
geelaw
2017-06-16 17:40:02 +08:00
Get-ChildItem '.git' -Directory -Recurse - Force | ForEach-Object {
Push-Location;
$_ | Set-Location;
Set-Location '..';
# 在这个目录下做你的事情
Pop-Location;
}
nannanziyu
2017-06-16 17:52:09 +08:00
@echo off
set pwd=%~dp0
for /f "delims=" %%i in ('dir /b /a:d /s ".git"') do call:funcPullFolder %%i
goto:eof

:funcPullFolder
cd %~1\..
git pull
cd %pwd%
goto:eof
dabao
2017-06-20 09:09:34 +08:00
@yushiro @doublleft 谢谢,确实非正常使用,我 clone 了多个 git 项目在本地,每次都要一一更新,太麻烦,于是就想用批处理一次执行获取所有

@SourceMan @momocraft 谢谢

@guanaco 谢谢,这命令对我有帮助
@geelaw 谢谢,这个好像是 powershell 命令吧,在 windows10 下也是非常有用的
@nannanziyu 谢谢,这个批处理正是我想要的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368840

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX