批量清理java源码的target目录

说明

maven的构建输出目录是target文件夹, java项目很多, 有时候希望批量清理一下, 于是写了这个脚本;

注意: 会清理所有子目录下的名为target的文件夹, 如果源码里有这个文件夹会被误删;
使用前请充分理解代码逻辑, 删除的文件无法恢复;

使用方法

方法1: 打开bat脚本, 输入路径或拖入目标文件夹;
方法2: 拖动目标文件夹到bat脚本图标上;
方法3: 把bat脚本放到"发送到"文件夹, 目标文件夹上右键 -> 发送到.. -> 选择bat文件
"发送到"的路径: C:\Users\<user>\AppData\Roaming\Microsoft\Windows\SendToshell:sendto

推荐: for命令版

@rem 作用:删除目录和子目录下的target文件夹
@rem 用法:拖入文件; 也可以放到"发送到"文件夹
@rem 其他:
@rem 2018/08/10 周五 13:02:31.89
@echo off&SetLocal EnableDelayEdexpansion&cd /d "%~dp0"

set dirpath=%~1
if not defined dirpath (
  echo 没有传入路径
  set /p dirpath=请输入路径:
)

if not defined dirpath (
  echo 没有路径
  pause&goto :end
)


echo 路径: %dirpath%
set /p case=删除所有target?(y/n)
if "!case!" neq "y" (
  pause&goto :end
)

echo 开始扫描...
for /r %dirpath%  %%a in (.) do (
  set name=%%~nxa
  set /p a=-<nul
  if "!name!" equ "target" (
    set fullpath="%%a"
    echo;
    echo 删除 !fullpath!
    rd /s/q !fullpath!
  )
)
echo 完成
pause

:end

dir命令版

@rem 作用:删除目录和子目录下的target文件夹
@rem 用法:拖入文件; 也可以放到"发送到"文件夹
@rem 其他:
@rem 2018/08/10 周五 13:02:31.89
@echo off&SetLocal EnableDelayEdexpansion&cd /d "%~dp0"

set dirpath=%~1
if not defined dirpath (
  echo 没有传入路径
  pause&goto :end
)
echo 路径: !dirpath!
set /p case=删除所有target?(y/n)
if "!case!" neq "y" (
  pause&goto :end
)


for /f "eol= delims=" %%a in ('dir "!dirpath!" /b /s /ad ') do (
  set name=%%~nxa
  if "!name!" equ "target" (
    set fullpath="%%a"
    echo 删除 !fullpath!
    rd /s/q !fullpath!
  )
)
echo 完成
pause

:end

posted @ 2021-11-12 12:05  QIAOXINGXING001  阅读(1075)  评论(0编辑  收藏  举报