batch脚本判断当前目录下有多少文件和文件总大小
时间: 2024-01-21 17:03:30 浏览: 28
你可以使用以下批处理脚本来查找当前目录中的文件数量和文件总大小:
```
@echo off
set count=0
set size=0
for %%f in (*) do (
set /a count+=1
for /f %%s in ("%%~zf") do set /a size+=%%s
)
echo Number of files: %count%
echo Total size of files: %size% bytes
```
这个脚本使用一个for循环遍历当前目录中的所有文件。对于每个文件,它将计数器增加1,并使用一个嵌套的for循环获取该文件的大小,并将其添加到一个变量中。最后,脚本会将文件总数和文件总大小(以字节为单位)输出到命令行窗口中。
相关问题
batch脚本输出当前目录下有多少大小为0kb的文件
可以使用以下的命令来实现:
```
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 的文件数量。
batch 脚本输出当前目录下文件名和文件大小
可以使用以下的批处理脚本来输出当前目录下文件名和文件大小:
```
@echo off
for %%i in (*) do (
echo %%~nxi %%~zi bytes
)
```
这个脚本会遍历当前目录下的所有文件,并输出每个文件的文件名和文件大小(以字节为单位)。其中,`%%~nxi` 表示文件名和扩展名,`%%~zi` 表示文件大小。