找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31074|回复: 6

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

[复制链接]
发表于 2014-4-22 11:27:56 | 显示全部楼层 |阅读模式
  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"
复制代码
发表于 2014-4-22 12:13:04 | 显示全部楼层
这个直接 RD 好了
 楼主| 发表于 2014-4-22 12:44:29 | 显示全部楼层
回复 2# terse


   rd是删除整个目录, 我想删除的是当前目录以及子目录里面有空目录的情况
发表于 2014-4-22 13:18:22 | 显示全部楼层
回复 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
复制代码
 楼主| 发表于 2014-4-22 13:26:55 | 显示全部楼层
回复 4# terse

  看来我没表述清楚, terse误解我的意思了。 我是说在当前目录有很多子目录, 子目录里面有空目录,也有非空目录, 我只想删除空目录而不删除非空目录
发表于 2014-4-22 14:07:31 | 显示全部楼层
回复 5# gflrlm


    不带任何参数的rd即为删除空目录,非空的是无法删除的
 楼主| 发表于 2014-4-22 17:37:16 | 显示全部楼层
回复 6# zhanglei1371

这样也可以。。。rd命令好强大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 02:06 , Processed in 0.031365 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表