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

[文件操作] 【已解决】批处理怎样判断空文件夹并删除?

[复制链接]
发表于 2013-3-23 20:07:24 | 显示全部楼层 |阅读模式
本帖最后由 林小七 于 2013-3-24 22:36 编辑

我是这么写的:
  1. for /d /r %%a in (*) do (
  2.         echo %%a
  3.         if not exist "%%a\*" rd /s /q "%%a")
复制代码
但是删除不掉啊,百度了下,发现了一个
  1. for /f "tokens=*" %%a in ('dir /b /ad /s^|sort /r') do rd "%%a" 2>nul
复制代码
很神奇,我就分开试了试,dir /ad /b /s是显示所有目录,sori /r是倒叙a-z,0-9,排成z-a,9-0,难道这个命令能把有子目录的目录排在上面去??然后渐级递减?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-3-23 22:13:13 | 显示全部楼层
是的,对 sort /r 来说,"盘符:\目录\子目录" 大于 "盘符:\目录",所以排序后会先删除一个目录中最深层的子目录,再删除其父目录(假如为空)

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2013-3-23 22:41:00 | 显示全部楼层
回复 2# CrLf


    原来真的是这样 啊,就是从最里往外逐层删除,最后用用那个2>nul屏蔽删错不掉的错误提示...才知道sort...哎,我差的太多了
 楼主| 发表于 2013-3-23 22:48:36 | 显示全部楼层
本帖最后由 林小七 于 2013-3-23 23:05 编辑

回复 2# CrLf

这么说。这样也行喽...
  1. for /d /r %%a in (*) do (
  2.         echo %%a>>1.txt)
  3. for /f %%s in ('sort /r^<1.txt') do (
  4.         rd  /q "%%s" 2>nul)
复制代码
就是好麻烦 啊,不如dir /s /ad /b     方便了。还要继续努力了,谢谢前辈指点了
 楼主| 发表于 2013-3-23 23:06:50 | 显示全部楼层
...手贱在rd后面加了 /s,顿时哭了..
 楼主| 发表于 2013-3-24 10:22:17 | 显示全部楼层
回复 2# CrLf
  1. if not exist "%%a\*" rd /s /q "%%a"
复制代码
为什么这句无法判断文件夹啊??
发表于 2013-3-24 11:29:26 | 显示全部楼层
回复 6# 林小七
  1.   if not exist "%%a\*" rd /s /q "%%a"
复制代码
这句是判断%%a文件夹本身是否存在。如果不存在%%a文件夹,就删除%%a文件夹,逻辑上就不对。

你的意图应该是想判断%%a文件夹是否为空文件夹
 楼主| 发表于 2013-3-24 17:30:25 | 显示全部楼层
回复 7# apang
  1.   if not exist "%%a\*.*" rd /s /q "%%a"
复制代码
这么写还是不行??为什么呢??
发表于 2013-3-24 18:25:44 | 显示全部楼层
回复 8# 林小七


    因为CMD的能够识别语法跟你自己拍脑袋想出来的语法不一样
发表于 2013-3-24 18:58:14 | 显示全部楼层
回复 8# 林小七
  1. dir /b abc\|findstr .>nul&&echo 非空||echo 空
复制代码
判断abc文件夹是否为空

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2013-3-24 20:41:45 | 显示全部楼层
回复 8# 林小七


    cmd 在通配匹配文件夹的时候显得比较怪异,可能是因为各种保留名(比如 . .. con nul 等等)造成的干扰吧?具体原因不知道
 楼主| 发表于 2013-3-24 22:35:33 | 显示全部楼层
回复 10# apang


    这句更厉害
 楼主| 发表于 2013-3-24 22:35:52 | 显示全部楼层
回复 11# CrLf

好吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 01:52 , Processed in 0.023853 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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