@echo off setlocal enabledelayedexpansion :: 参数处理:使用/pull参数先拉取更新 set DO_PULL=0 if /i "%~1"=="/pull" set DO_PULL=1 :: 遍历当前目录下的所有子目录 for /d %%i in (*) do ( pushd "%%i" if exist ".git" ( echo. echo [正在处理仓库] %%i :: 拉取更新(如果启用) if !DO_PULL! equ 1 ( echo 拉取最新更改... git pull if errorlevel 1 ( echo [错误] 拉取失败于 %%i popd goto :next_folder ) ) :: 提交更改 git add . git commit -m "modify" if errorlevel 1 ( echo [信息] 无新更改或提交失败于 %%i ) else ( echo 推送更改到远程... git push if errorlevel 1 ( echo [错误] 推送失败于 %%i ) ) ) else ( echo. echo [跳过] %%i 不是Git仓库 ) :next_folder popd ) :: 主动等待用户关闭 echo. echo 所有操作已完成,按任意键关闭窗口... pause >nul