批处理dos命令深度递归扫描删除指定路径下指定文件夹的内容

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文件夹放防止有些程序不能自建文件夹找不到路径报错

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值