batch脚本输出当前目录下有多少大小为0kb的文件
时间: 2024-03-14 10:46:09 浏览: 22
可以使用以下的命令来实现:
```
dir /b /a-d * | find /v /c "" > temp.txt
for /f %%i in (temp.txt) do (
if %%i==0 echo 0kb的文件数量为 0
for /f "tokens=1-3" %%a in ('dir /s /-c /a-d /w /b ^| find "File(s)"') do (
if %%b==0 echo 0kb的文件数量为 %%a
)
)
del temp.txt
```
解释一下:
- `dir /b /a-d *`:列出当前目录下所有的文件,其中 `/b` 表示只显示文件名,不显示其他信息,`/a-d` 表示只显示文件,不显示目录。
- `find /v /c ""`:在 `dir` 命令的输出中查找非空行的数量,也就是文件的数量,并将结果输出到 `temp.txt` 文件中。
- `for /f %%i in (temp.txt) do (...)`:对 `temp.txt` 文件中的每一行执行后面的命令,这里只有一行,即文件数量。
- `if %%i==0 echo 0kb的文件数量为 0`:如果文件数量为 0,则输出提示信息。
- `for /f "tokens=1-3" %%a in ('dir /s /-c /a-d /w /b ^| find "File(s)"') do (...)`:统计当前目录及其子目录下所有文件的大小,并将结果输出到命令行窗口。
- `if %%b==0 echo 0kb的文件数量为 %%a`:如果存在大小为 0 的文件,则输出其数量。
以上命令会输出当前目录及其子目录下大小为 0kb 的文件数量。