4

这对你们来说可能听起来很容易,我只是想列出目录中的文件列表及其大小。我尝试了一堆选项 dir / help,但似乎无法正确处理。你能帮忙吗?我也环顾四周,但我发现的只是目录大小的参考。

       I want the out put to look like this

       a.txt  21
       b.txt  72
       3.txt  73

提前谢谢你

4

1 回答 1

10

从命令行:

for %F in (*) do @echo %F     %~zF

如果在批处理文件中使用,则将百分比加倍。

@echo off
for %%F in (*) do echo %%F     %%~zF

对于固定宽度,最好先列出尺寸,因为宽度变化不大。12 位数字几乎足够 1 TB。文件名长度可以变化很大。

这是一个以字节为单位列出大小(最多 12 位)的批处理脚本,后跟文件名:

@echo off
setlocal disableDelayedExpansion

for %%F in (*) do (
  set "name=%%F"
  set "size=            %%~ZF"
  setlocal enableDelayedExpansion
  echo !size:~-12! !name!
  endlocal
)

延迟扩展的切换是为了防止文件名在包含!字符时损坏。如果启用延迟扩展并且值包含 ,则任何 FOR 变量值都会损坏!

于 2013-09-15T20:20:31.540 回答