1、先列印将要被清理的指定路径下的所有logs文件夹
2、列印后按任意键继续执行则会删除
如果要扫描其它文件夹名,修改批处理中的logs为要清理的文件夹名即可
@echo off
::配置需要扫描清理文件夹的路径
set delpath=F:\deltest
echo.
color 02
echo.
echo ---------------------------------------------------------------------------------------
echo 开始执行删除 %delpath% 下包含子路径中所有名为logs的文件夹中包含的所有文件
echo ---------------------------------------------------------------------------------------
echo.
echo.
echo.
echo.
echo.
echo.
cd /d %delpath%
for /f "delims=" %%i in ('dir /ad/b/s %delpath%\*logs ^|findstr /i \\logs' ) do (echo %%i)
echo.
echo.
echo.
echo.
echo #######################################################################################
echo.
echo 即将被清除的路径列表,请确认
echo.
echo ########################################################################################
echo.
echo.
pause
for /f "delims=" %%j in ('dir /ad/b/s %delpath%\*logs ^|findstr /i \\logs' ) do (rd /s/q %%j && md %%j)
echo.
echo.
echo "已经删除 %delpath% 下名为logs文件夹内的所有内容"
echo.
echo.
pause
set 设置变量名
for /f 可查询到文件内容,delims= 查询的内容以什么为分割符 %%i 写成批处理要用两个%%在cmd中执行只能写一个%i
cd /d 切换到目录
dir /ad 显示文件夹 /b 不显示信息和摘要 /s 递归查找包含子目录 *logs 以logs结尾的所有文件夹,只写logs会把前后名称中包含有logs的都打印出来 ^| ^为转义符号将|转义为为管道而不是普通字符传递给findstr /i 不区分大小写 \logs \转义\logs前为字符串
rd /s 删除非空目录,/q 静默删除不用提示
md %%j 脚本目的是为了删除logs文件夹下的日志,rd把logs文件夹都删了所以新建logs文件夹放防止有些程序不能自建文件夹找不到路径报错