自动清空 maven 项目临时文件,vue 的 node_modules 文件
@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