无忧启动论坛

标题: 如何删除0字节文件? [打印本页]

作者: 开始就是未来    时间: 2009-6-1 17:04
标题: 如何删除0字节文件?
如何用cmd命令删除0字节的文件和空文件夹?
作者: yichya    时间: 2009-6-1 18:33
del xx
rd /s /q xx
作者: wind_fsm    时间: 2009-6-1 22:43
楼主是不是要遍历某个路径删除符合条件的所有文件和文件夹啊?如果是这样这个问题就有点难度了,看看高手如何解决
作者: zxw    时间: 2009-6-1 23:18
原帖由 wind_fsm 于 2009-6-1 22:43 发表
楼主是不是要遍历某个路径删除符合条件的所有文件和文件夹啊?如果是这样这个问题就有点难度了,看看高手如何解决

符合条件?有些系统文件就是0字节,删除了又不能自动生成,是个费力的活路
作者: dos时代菜鸟    时间: 2009-6-2 08:22
搜索一次空文件并删除之
比如要删除 e:\xyz文件夹中的空文件 可以运行 "df e:\xyz"
df.cmd内容如下:
-----------------------------
@echo off
for /f "delims=" %%c in ('dir %1 /a-d /b /s') do (
if "%%~zc"=="0" (echo %%c &del "%%c" /q /f)
)
-----------------------------


搜索一次空文件夹并删除之
比如要删除 e:\xyz 文件夹中的空文件夹 可以运行 “dd e:\xyz ”
dd.cmd内容如下:
-------------------------------
@echo off
for /f "delims=" %%c in ('dir %1 /b /ad /s') do (
dir /b /a "%%c"|findstr .>nul|| echo %%c
dir /b /a "%%c"|findstr .>nul|| rd /q "%%c"
)
---------------------------------

[ 本帖最后由 dos时代菜鸟 于 2009-6-2 08:48 编辑 ]
作者: chenall    时间: 2009-6-2 08:32
删除0字节文件如下.

@echo off
for /f "delims=" %%c in ('dir %1 /b /a-d /s') do if "%%~zc"=="0" del /f "%%c"

[ 本帖最后由 chenall 于 2009-6-2 15:39 编辑 ]
作者: dos时代菜鸟    时间: 2009-6-2 08:49
原帖由 chenall 于 2009-6-2 08:32 发表
删除0字节文件如下.

@echo off
for /f "delims=" %%c in ('dir %1 /b /ad /s') do if "%%~zc"=="0" del /f "%%c"



是不是忽略了 /ad 应该改成 /a-d
作者: wind_fsm    时间: 2009-6-2 09:53
高手出现,学习了……
作者: 开始就是未来    时间: 2009-6-2 09:59
例如,系统盘C中有许多为0字节的文件和空文件夹,有些是允许删除的有些是系统不让删的,如何用一个CMD命令把系统允许删的给删掉?
作者: 开始就是未来    时间: 2009-6-2 10:09
例如,在系统盘C中有许多为0字节的系统文件和空文件夹,其中有些是可以删除的有些是系统不允许删除的,如何用CMD命令把这些可以删除的删掉?
作者: chenall    时间: 2009-6-2 15:39
原帖由 dos时代菜鸟 于 2009-6-2 08:49 发表



是不是忽略了 /ad 应该改成 /a-d

是的应该改成
/a-d

写少了.
作者: dos时代菜鸟    时间: 2009-6-3 07:45
原帖由 开始就是未来 于 2009-6-2 10:09 发表
例如,在系统盘C中有许多为0字节的系统文件和空文件夹,其中有些是可以删除的有些是系统不允许删除的,如何用CMD命令把这些可以删除的删掉?


需要把这些不需要删除的文件和文件夹列入文本文件充当数据库,然后在for命令中 嵌套 for/f  命令或者 find 命令 加以识别。
如果搜索到的空文件或者文件夹在文本数据库中就跳过之。

另外,大部分系统必须的空文件夹和空文件都会被系统锁定,删除不下去,或者即使删除了系统也会自动生成。
作者: jzyjjp    时间: 2010-1-1 16:28
标题: 回复 #6 chenall 的帖子
原贴内容如下:
@echo off
for /f "delims=" %%c in ('dir %1 /b /a-d /s') do if "%%~zc"=="0" del /f "%%c"

本人经试验发现,该批处理不能删除当前目录下的0字节文件和具有隐藏属性的0字节文件,应改为:
@echo off
cd/d %1 (比如 cd/d c:\)
for /f "delims=" %%c in ('dir/b/a-d/s') do if "%%~zc"=="0" del/a/f "%%c"
该命令将删除%1目录下所有的0字节文件(包括子目录中的文件)

[ 本帖最后由 jzyjjp 于 2010-1-2 11:51 编辑 ]
作者: jzyjjp    时间: 2010-1-9 22:43
本人近日发现,删除c:\的0字节文件没问题,
但如果删除c盘下所有的0字节文件就会引起问题,比如右键“发送到”的功能已不完全了,可能还会有其他的未发现的问题。
所以,推荐大家可以删除c:\的0字节文件,但最好不要删除其他地方的0字节文件。

所以,上述命令应改为:
@echo off
cd/d c:\
for /f "delims=" %%c in ('dir/b/a-d') do if "%%~zc"=="0" del/a/f "%%c"

[ 本帖最后由 jzyjjp 于 2010-1-9 22:47 编辑 ]




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3