虽然这种脚本在AI 时代几分钟就可以写完 + 调试完,但是这个我已经调试+测试好了,所以还是保留一下,便于在一些老的机器上及时更新代码
bash
@echo off
:: 强制跳转到脚本所在目录
cd /d "%~dp0"
setlocal enabledelayedexpansion
echo [INFO] 开始检测并拉取所有 Git 仓库...
echo --------------------------------------------------
:: 使用 dir 获取文件夹名,能更好地处理带空格和长文件名的目录
for /f "delims=" %%i in ('dir /ad /b') do (
if exist "%%i\.git\" (
echo [GIT] 正在进入文件夹: %%i
:: 记录当前主目录路径
set "MAIN_DIR=%cd%"
:: 使用 cd 直接进入,不使用容易报错的 pushd
cd /d "%%i" 2>nul
if !errorlevel! equ 0 (
:: 执行拉取
git pull --ff-only
if !errorlevel! equ 0 (
echo [SUCCESS] %%i 更新成功。
) else (
echo [ERROR] %%i 更新失败。
)
:: 切换回主目录
cd /d "!MAIN_DIR!"
) else (
echo [ERROR] 无法进入目录: %%i
)
echo --------------------------------------------------
)
)
echo [FINISH] 所有操作已完成。
pause