乐趣区

关于java:批量清理java源码的target目录

[toc]

阐明

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
退出移动版