中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求一个可以删除0KB的文本文档的批处理。
作者:
标题: 求一个可以删除0KB的文本文档的批处理。 上一主题 | 下一主题
JamesYou
初级用户





积分 52
发帖 36
注册 2008-10-10
状态 离线
『楼 主』:  求一个可以删除0KB的文本文档的批处理。

求一个删除0KB的文本文档的程序。
要求:
    可以删除A文件夹下所有子目录下的所有0字节的文件。(A文件夹为该批处理所在的文件夹。)
谢了先。

[ Last edited by JamesYou on 2009-1-13 at 10:19 ]

2009-1-13 09:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kurt101
初级用户





积分 23
发帖 17
注册 2008-8-22
状态 离线
『第 2 楼』:  

@echo off
for /r %%i in (*) do (
if %%~zi==0 del/f/q "%%i"
)

   此帖被 +2 点积分    点击查看详情   
评分人:【 JamesYou 分数: +2  时间:2009-1-13 13:36


2009-1-13 12:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kurt101
初级用户





积分 23
发帖 17
注册 2008-8-22
状态 离线
『第 3 楼』:  

看错了,是本文文档的话就把那个*  改为*.txt就可以了

2009-1-13 12:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
JamesYou
初级用户





积分 52
发帖 36
注册 2008-10-10
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by kurt101 at 2009-1-13 12:29:
@echo off
for /r %%i in (*) do (
if %%~zi==0 del/f/q "%%i"
)

那上面这个批处理是不是可以删除*.*文件啊?

2009-1-14 09:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pkto
初级用户





积分 62
发帖 62
注册 2007-7-14
状态 离线
『第 5 楼』:  

是的。但是这个批处理对长文件名无效,如:"新建 Txt.txt"这个文件如果是0字节的话,就删除无效

2009-1-14 12:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
JamesYou
初级用户





积分 52
发帖 36
注册 2008-10-10
状态 离线
『第 6 楼』:  

那怎么该才会对长文件名有效呢?

2009-1-19 20:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 7 楼』:  试试这个^_^

for /f "tokens=1-3,*" %%a in ('dir /s/a-d *.txt ^|findstr /c:"   0 "^|findstr /c:"-"') do del "%%~fd"

[ Last edited by netbenton on 2009-1-19 at 22:32 ]

   此帖被 +1 点积分    点击查看详情   
评分人:【 pkto 分数: +1  时间:2009-1-20 13:23




精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-1-19 22:09
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
pkto
初级用户





积分 62
发帖 62
注册 2007-7-14
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by netbenton at 2009-1-19 10:09 PM:
for /f "tokens=1-3,*" %%a in ('dir /s/a-d *.txt ^|findstr /c:"   0 "^|findstr /c:"-"') do del "%%~fd"

[ Last edited by netbenton on 2009-1-19 at 22:32 ]

哈哈,这个是正解啦!
不过执行的时候有些迟滞。偶小动了下:
for /f "tokens=1-3,*" %%a in ('dir /s/a-d *.* ^|findstr /c:"   0 "^|findstr /c:"-"') do del "%%~fd"

可删除所有0字节的文件,且速度一闪而过。嘻嘻,剽窃哦,netbenton大大原谅啦!

2009-1-20 13:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
JamesYou
初级用户





积分 52
发帖 36
注册 2008-10-10
状态 离线
『第 9 楼』:  

楼上的那个程序是不是支持文件名呢?

2009-1-20 15:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
JamesYou
初级用户





积分 52
发帖 36
注册 2008-10-10
状态 离线
『第 10 楼』:  

可是这些批处理只能删除当前目录下的0字节的文本文档,而对当前目录下的子目录下的0字节的文本文档就无效啊。
  我要的是可以删除当前目录下的子目录下的0字节的文本文档。

[ Last edited by JamesYou on 2009-6-2 at 02:39 ]

2009-6-2 02:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by JamesYou at 2009-6-2 02:37:
可是这些批处理只能能删除当前目录下的0字节的文本文档,而对当前目录下的子目录下的0字节的文本文档就 ...

你试过了吗?它不是只删除当前目录下的,本身就遍历了子目录。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2009-6-2 02:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by pkto at 2009-1-14 12:19:
是的。但是这个批处理对长文件名无效,如:"新建 Txt.txt"这个文件如果是0字节的话,就删除无效

你试过了吗?"新建 Txt.txt"这样的文件不能删除?



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2009-6-2 02:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: