楼 主
自动判断文件夹是否为空。是空文件夹则删除!
发表于 2008-02-22 00:47 · 中国 湖北 宜昌 电信
初级用户
★
积分 41 发帖 14 注册 2006-09-30 02:27 19年会员 UID 64100
状态 离线
自动判断文件夹是否为空。是空文件夹则删除!
for /l %%a in (1,1,3) do for/r %%i in (.) do rd %%~si
帮我看看这个有没有什么错误。。
可以用在LJ 文件清理里面么?
第 2 楼
发表于 2008-02-23 00:53 · 中国 福建 三明 电信
高级用户
★★
论坛上抢劫的
积分 551 发帖 246 注册 2006-09-21 12:35 19年会员 UID 63270
状态 离线
for /f "tokens=*" %%a in ('dir /b /ad /s "l:\"^|sort /r') do rd "%%a" 2>nul
第 3 楼
发表于 2008-02-23 09:26 · 中国 江苏 扬州 江都区 电信
高级用户
★★★
积分 620 发帖 329 注册 2007-12-05 15:34 18年会员 UID 104754 性别 男
状态 离线
Originally posted by lotus516 at 2008-2-23 12:53 AM:
for /f "tokens=*" %%a in ('dir /b /ad /s "l:\"^|sort /r') do rd "%%a" 2>nul
高手呀....
再请问一下..
怎样搜索删除.0字节的所有类型的文件.
第 4 楼
发表于 2008-02-23 11:33 · 中国 山东 烟台 联通
中级用户
★★
稳
积分 257 发帖 123 注册 2008-01-05 11:08 18年会员 UID 107722 性别 男 来自 烟台
状态 离线
的确厉害
学习了
致敬
0字节的所有类型的文件
用FOR中的%%~z扩展文件大小
%%~zi=0就是0字节i
路 是自己选的
学习 是为了具备解决问题的能力
第 5 楼
发表于 2008-02-23 11:40 · 中国 山东 烟台 联通
中级用户
★★
稳
积分 257 发帖 123 注册 2008-01-05 11:08 18年会员 UID 107722 性别 男 来自 烟台
状态 离线
请问
for /f "tokens=*" %%a in ('dir /b /ad /s "l:\"^|sort /r') do rd "%%a" 2>nul
中
"l:\"
这个是什么意思啊?
这里我不懂,能指点一下吗?
十分感谢
路 是自己选的
学习 是为了具备解决问题的能力
第 6 楼
发表于 2008-02-23 12:16 · 中国 江苏 扬州 江都区 电信
高级用户
★★★
积分 620 发帖 329 注册 2007-12-05 15:34 18年会员 UID 104754 性别 男
状态 离线
Originally posted by zyz0304360 at 2008-2-23 11:40 AM:
请问
for /f "tokens=*" %%a in ('dir /b /ad /s "l:\"^|sort /r') do rd "%%a" 2>nul
中
"l:\"
这个是什么意思啊?
这里我不懂, ...
晕
是要删文件夹的当前盘符.......
哪个0字节..你再说说.....
没有听懂..........
第 7 楼
发表于 2008-02-23 13:01 · 中国 北京 华为云
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 18年会员 UID 99469 性别 男
状态 离线
就是利用rd命令的特性,在删除0字节文件夹时不会提示出错
第 8 楼
发表于 2008-02-23 13:05 · 中国 山东 烟台 联通
中级用户
★★
稳
积分 257 发帖 123 注册 2008-01-05 11:08 18年会员 UID 107722 性别 男 来自 烟台
状态 离线
@echo off
for /f "tokens=*" %%i in ('dir /b *.* ^|sort /r') do if %%~zi==0 del /f /q "%%~ni.*"
pause
[ Last edited by zyz0304360 on 2008-2-23 at 01:18 PM ]
路 是自己选的
学习 是为了具备解决问题的能力
第 9 楼
发表于 2008-02-23 13:26 · 中国 山东 烟台 联通
中级用户
★★
稳
积分 257 发帖 123 注册 2008-01-05 11:08 18年会员 UID 107722 性别 男 来自 烟台
状态 离线
Originally posted by cad55 at 2008-2-23 12:16 PM:
晕
是要删文件夹的当前盘符.......
哪个0字节..你再说说.....
没有听懂..........
是要删文件夹的当前盘符.......
我执行
dir /b /ad /s "|:\"
就会报错
找不到指定路径啊
比如有这样一个文件
C:aa\aa\aa
盘符是怎么删的?
这样?
C:aa\aa\aa |:\
我是菜鸟,目前只懂这个
set a=C:aa\aa\aa
set a=%a:\=%
上面的不懂还请指点,谢谢了
路 是自己选的
学习 是为了具备解决问题的能力
第 10 楼
发表于 2008-02-23 15:07 · 中国 江苏 扬州 电信
新手上路
★
积分 4 发帖 2 注册 2008-02-02 13:51 18年会员 UID 110023 性别 男
状态 离线
有没有人能完整的解释下啊,还是有点不懂啊
谢谢拉!
第 11 楼
发表于 2008-02-23 16:50 · 中国 天津 电信
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 18年会员 UID 99469 性别 男
状态 离线
Originally posted by zyz0304360 at 2008-2-23 01:26 PM:
是要删文件夹的当前盘符.......
我执行
dir /b /ad /s "|:\"
就会报错
找不到指定路径啊
比如有这样一个文件
C:aa\aa\aa
盘符是怎么删的 ...
把"|:\"
去掉就表示当前盘符
把"|:\"替换为自己的路径即可
第 12 楼
发表于 2008-02-23 17:04 · 中国 江苏 扬州 江都区 电信
高级用户
★★★
积分 620 发帖 329 注册 2007-12-05 15:34 18年会员 UID 104754 性别 男
状态 离线
Originally posted by duansuo at 2008-2-23 03:07 PM:
有没有人能完整的解释下啊,还是有点不懂啊
谢谢拉!
比如:你要删C盘下.空文件夹:
for /f "tokens=*" %%a in ('dir /b /ad /s "c:\"^|sort /r') do rd "%%a" 2>nul
你要删d盘下.空文件夹:
for /f "tokens=*" %%a in ('dir /b /ad /s "d:\"^|sort /r') do rd "%%a" 2>nul
[
Last edited by cad55 on 2008-2-23 at 05:14 PM ]
第 13 楼
发表于 2008-02-23 17:15 · 中国 广东 广州 白云区 电信
初级用户
★★
积分 132 发帖 59 注册 2007-08-23 21:24 18年会员 UID 95705 性别 男 来自 GuangZhou
状态 离线
为什么将2#的
for /f "tokens=*" %%a in ('dir /b /ad /s "E:\"^|sort /r') do rd "%%a" 2>nul
改为:
for /f "tokens=*" %%a in ('dir /b /ad /s "E:\"^|sort /r') do echo "%%a">>空文件夹菜单.txt
写入记事本的却是所有文件夹呢?
第 14 楼
发表于 2008-02-23 17:18 · 中国 天津 电信
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 18年会员 UID 99469 性别 男
状态 离线
Originally posted by Nickey at 2008-2-23 05:15 PM:
为什么将2#的
for /f "tokens=*" %%a in ('dir /b /ad /s "E:\"^|sort /r') do rd "%%a" 2>nul
改为:
for /f "tokens=*" %%a in ( ...
'dir /b /ad /s "E:\"^|sort /r'
是会列出所有文件夹的,至于为什么只删除空的文件夹而不删除非空文件夹
就是利用rd命令的特性,在删除空文件夹时不提示
在未加/Q参数时,rd命令在删除非空文件夹时,会提示出错信息的。
第 15 楼
发表于 2008-02-23 18:06 · 中国 山东 烟台 联通
中级用户
★★
稳
积分 257 发帖 123 注册 2008-01-05 11:08 18年会员 UID 107722 性别 男 来自 烟台
状态 离线
Originally posted by Nickey at 2008-2-23 05:15 PM:
为什么将2#的
for /f "tokens=*" %%a in ('dir /b /ad /s "E:\"^|sort /r') do rd "%%a" 2>nul
改为:
for /f "tokens=*" %%a in ( ...
'dir /b /ad /s "E:\"^|sort /r'
此命令用于列出所有E盘下及其子目录(/s)的文件夹名(/ad)
/ad指定了打印文件夹名
然后把文件夹名赋值给%%a
2>nul
的意思是把rd "%%a"命令执行时出现的错误命令写入空设备(就是不需要反馈了)
改成 echo "%%a" >>aaa.txt
当然就是把删除空文件时的系统反馈写入aaa.txt
因为%%a就是文件夹名
[
Last edited by zyz0304360 on 2008-2-23 at 06:07 PM ]
路 是自己选的
学习 是为了具备解决问题的能力
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正