[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] BAT批处理递归判断目录是否为空并删除

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. dir /a:d /b /s "."  | sort /r> "%cd%\directory.txt"
  4. for /f "usebackq delims=" %%i in ("directory.txt") do (
  5.     echo "cur dir is: "%%i""
  6.     dir /a /b "%%i" >"c:\folder_content.txt"
  7.     findstr . "c:\folder_content.txt" >nul 2>nul && ( echo "The folder "%%i" is NOT NOT NOT empty") || ( echo "The folder "%%i" is empty" && echo "%%i">>"%cd%\empty_dir" && rd "%%i")
  8.     )
  9. del  "%cd%\directory.txt"
复制代码

这个直接 RD 好了

TOP

回复 2# terse


   rd是删除整个目录, 我想删除的是当前目录以及子目录里面有空目录的情况

TOP

回复 3# gflrlm
也有
  1. @echo off
  2. for /f "delims=" %%i in ('dir /ad /b /s^|sort /r') do rd "%%i" 2>nul&&echo %%i
  3. pause
复制代码

TOP

回复 4# terse

  看来我没表述清楚, terse误解我的意思了。 我是说在当前目录有很多子目录, 子目录里面有空目录,也有非空目录, 我只想删除空目录而不删除非空目录

TOP

回复 5# gflrlm


    不带任何参数的rd即为删除空目录,非空的是无法删除的

TOP

回复 6# zhanglei1371

这样也可以。。。rd命令好强大

TOP

返回列表