@echo off
 setlocal enabledelayedexpansion
:: vue 的 node_modules 太大
 :: maven 打包后的 target 文件也很大,
 :: 有些项目日志文件也很大,导致磁盘空间不足了,
 :: 所以写了个脚本,只要配置一下各项目目录,
 :: 双击这个脚本就可自动清空这些文件,
 :: 清空某个目录时,需要输入Y进行确认
 :: 注意:目录可以是中文的,但不能包含空格(如不支持C:\Program Files)
 :: 配置区 start =================================================
 :: 需要清理的各项目目录(以空格分隔)
 :: set "projectRoots=D:\Work\jorchi\didi-driving\didi-driving-server D:\Work\jorchi\alichat\ali-chat-client-vue-prod D:\Work\jorchi\didi-driving\didi-driving-server-test D:\Work\jorchi\didi-driving\didi-driving-server-prod D:\Work\jorchi\car-data-business\car-data-business-server D:\Work\jorchi\alichat\ali-chat-server-dev D:\Work\jorchi\alichat\ali-chat-server-prod D:\Work\jorchi\alichat\ali-chat-server-sync D:\Work\jorchi\alichat\ali-chat-server-sync-prod D:\Work\jorchi\alichat\ali-chat-server-test D:\Work\jorchi\alichat\ali-chat-server-uat"
 set "projectRoots="
:: 需要直接清理的各临时文件目录(以空格分隔)
 :: set "tmpDirs=D:\临时目录 D:\log D:\TestDir D:\usr\local D:\data D:\imgdata D:\Work\jorchi\alichat\ali-chat-client-vue-prod\ROOT D:\root\TongWeb7.0\logs"
 set "tmpDirs=D:\临时目录 D:\log"
:: 配置区 end ====================================================
:: 清理项目日志目录
 for %%r in (%projectRoots%) do (
     cd /d "%%r"
     echo [清空] mvn clean at %%r
     call mvn clean
     set "_root=%%~r"
     :: 清空项目根目录下日志文件
     set "_logDir=!_root!\logs"
     call :clean_dir "!_logDir!" "项目日志"
     :: 清空某模块下的日志文件
     set "_logDir=!_root!\server-api\logs"
     call :clean_dir "!_logDir!" "项目日志"
     :: 清空 node_modules 文件
     set "_logDir=!_root!\node_modules"
     call :clean_dir "!_logDir!" "项目依赖"
 )
:: 清理临时文件目录
 for %%d in (%tmpDirs%) do (
     call :clean_dir "%%~d" "临时文件"
 )
endlocal
echo [已执行完毕]
 pause
 exit /b 0
:: 通用清理函数 -----------------------------
 :clean_dir
 set "target=%~1"
 set "type=%~2"
if not exist "!target!\" (
     :: echo [跳过][!type!] 目录不存在: %~1
     exit /b 0
 )
:: 用户确认环节
 :confirm
 set /p "choice=确认要清空目录 [%~1] 吗?(Y/N): "
 if /i "!choice!" == "Y" (
     echo 正在清理: %~1 ...
     del /q /s /f "!target!\*" >nul 2>&1
     rmdir /s /q "!target!" >nul 2>&1
     if exist "!target!\" (
         echo [失败] 清理未完成: %~1
     ) else (
         echo [成功] 已清理: %~1
     )
 ) else if /i "!choice!" == "N" (
     echo [取消] 已跳过: %~1
 ) else (
     echo 输入无效,请按 Y 或 N
     goto confirm
 )
 exit /b 0