当前位置: 首页 > news >正文

自动清空 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

相关文章:

  • K8S Service 原理、案例
  • 【AIGC】基础篇:VS Code 配置 Python 命令行参数调试debug超详细教程
  • MySQL日期函数的详细教程(包含常用函数及其示例)
  • JavaWeb:JavaScript
  • 苹果新规生效:即日起不再接受iOS 17 SDK编译的应用提交
  • [密码学实战]商用密码产品密钥体系架构:从服务器密码机到动态口令系统
  • 源码分析之Leaflet中Icon类
  • 【EDA】EDA中聚类(Clustering)和划分(Partitioning)
  • 《算法笔记》4.2小节——算法初步->哈希
  • 观测云数据在Grafana展示的最佳实践
  • Milvus(7):Schema、主字段和自动识别
  • Apache Spark 源码解析
  • Go 语言 TCP 端口扫描器实现与 Goroutine 池原理
  • Modbus主从通信功能码与报文格式
  • 如何在SpringBoot中通过@Value注入Map和List并使用YAML配置?
  • 电子学会—青少年软件编程 python一级等级考试真题—2025年03月
  • 20242817-李臻-课上测试:信号处理
  • uniapp自定义封装tabbar
  • TDengine 数据缓存技术
  • iOS/Flutter混合开发之PlatformView配置与使用
  • 文旅部副部长饶权出任国家文物局局长
  • 解码人格拼图:探索心理健康的多维视角
  • 合同约定拿850万保底利润?重庆市一中院:约定无效,发回重审
  • 《哪吒之魔童降世》电影版权方诉《仙侠神域》游戏运营方侵权案开庭
  • 海关总署牵头部署开展跨境贸易便利化专项行动
  • 广东省发展改革委原副主任、省能源局原局长吴道闻被开除公职