首页 > 解决方案 > 设置目录中最大文件的变量

问题描述

如果我这样做dir,它会列出多个随机文件,并在一列中显示其大小。如何为按大小计最大的文件设置变量?

例如。

$ dir
 Volume in drive C is file_dir

 Directory of C:\file_dir\

2019-05-05  21:33    <DIR>          .
2019-05-05  21:33    <DIR>          ..
2019-05-05  21:33        11 123 000 docs.pdf
2019-05-05  21:33         2 710 996 docs.txt
2019-05-05  21:33       152 708 423 archives.zip

archives.zip被设置为变量?

标签: windowsbatch-filevariablessize

解决方案


如果您这样做dir /?,您会看到该/o开关允许按大小等属性进行排序。将/b开关用于裸列表(仅列出文件名),并使用for /F.

为简单起见,您可以从最小到最大排序:

@echo off & setlocal
for /f "delims=" %%I in ('dir /b /o:s') do set "largest=%%~I"

或从大到小提高效率

@echo off & setlocal
set "largest="
for /f "delims=" %%I in ('dir /b /o:-s') do if not defined largest set "largest=%%~I"

推荐阅读