@echo off
setlocal enabledelayedexpansion

REM 设置要遍历的目标目录
set TARGET_DIR=E:\

REM 设置遍历的最大深度
set MAX_DEPTH=2

REM 初始化当前深度
set CURRENT_DEPTH=0

REM 调用递归函数
call :traverse "%TARGET_DIR%"

echo Done!
pause
exit /b

:traverse
REM 获取当前目录路径
set CURRENT_DIR=%~1

REM 检查是否达到最大深度
if %CURRENT_DEPTH% geq %MAX_DEPTH% goto :eof

REM 进入当前目录
cd /d "%CURRENT_DIR%"

REM 检查是否为 Git 目录
if exist .git (
    echo Found Git repository in %CURRENT_DIR%
    echo Pulling changes in %CURRENT_DIR%...
    git pull
) else (
  REM 遍历当前目录下的所有子目录
  for /d %%D in (*) do (
      set /a NEXT_DEPTH=CURRENT_DEPTH+1
      call :traverse "%%D"
  )
)

REM 返回上一级目录
cd ..
exit /b