我有一些进程,在目录及其子目录中创build一些0KB大小的文件。
任何单一的命令或脚本将执行任务将工作。
我只能运行简单的cmd命令和脚本,在具有受限访问权限的远程计算机上工作。
ifstream其他程序正在写入的文件?
编程创build的文件在Linux中成为NULL
并行读取Windows共享目录中的文件
迭代递归遍历文件:
for /r %F in (*)
找出零长度的文件:
if %~zF==0
删除它们:
del "%F"
把它放在一起:
for /r %F in (*) do if %~zF==0 del "%F"
如果你在批处理文件中需要这个,那么你需要把% :
for /r %%F in (*) do if %%~zF==0 del "%%F"
注:我假设你的意思是长度为0字节的文件。 如果用0 KB表示任何小于1000字节的数据,则表示上面if需要读取, if %~zF LSS 1000或者任何您的阈值。
@echo off setLocal EnableDelayedExpansion for /f "tokens=* delims= " %%a in ('dir/s/b/a-d') do ( if %%~Za equ 0 del "%%a" )
发现在: 链接文本似乎工作,一个警告:它不会删除名称包含空格的文件。 可能会有一个解决方法,但是恐怕批处理不是我的专长。
错误纠正后,这工作正常。 问题是缺少代字符(〜),例如,del“%% a”需要被删除“%%〜a”
这确实会删除名称中带有空格的文件,因为它将标记放在“双引号”中 – 另一种方法是使用“短名称”,如第二个示例中所示[%%〜sa
@echo off setLocal EnableDelayedExpansion for / f“tokens = * delims =”%% a in('dir / s / b / a-d')do(if %%〜Za equ 0 del“%%〜a”)
@echo off setLocal EnableDelayedExpansion for / f“tokens = * delims =”%% a in('dir / s / b / a-d')do(if %%〜Za equ 0 del %%〜sa)
您可以尝试UnxUtils中的 find.exe。
find . -type f -empty -delete
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。