为目录中最大的文件设置变量
Set variable for biggest file in the directory
如果我这样做 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
被设置为变量?
如果您这样做 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"
读取dir /?
的输出。它告诉您,您可以使用 /os
开关(尝试 dir /os
)按大小对文件进行排序,并使用 /b
开关(尝试 dir /os /b
)仅打印文件名。 /a-d
也可用于抑制文件夹。
要将 last/biggest 文件捕获到变量中,请使用 for /f
循环(有关详细信息,请参阅 for /?
):
for /f "delims=" %%a in ('dir /os /b /a-d *') do set "biggest=%%a"
echo biggest file is %biggest%
(注意:这是批处理文件语法。如果直接在命令行上使用,请使用 %a
而不是 %%a
(两者))
如果我这样做 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
被设置为变量?
如果您这样做 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"
读取dir /?
的输出。它告诉您,您可以使用 /os
开关(尝试 dir /os
)按大小对文件进行排序,并使用 /b
开关(尝试 dir /os /b
)仅打印文件名。 /a-d
也可用于抑制文件夹。
要将 last/biggest 文件捕获到变量中,请使用 for /f
循环(有关详细信息,请参阅 for /?
):
for /f "delims=" %%a in ('dir /os /b /a-d *') do set "biggest=%%a"
echo biggest file is %biggest%
(注意:这是批处理文件语法。如果直接在命令行上使用,请使用 %a
而不是 %%a
(两者))