是否有Windows命令将输出指定文件的大小(如下所示)?
> filesize test.jpg 65212
我知道dir命令输出这些信息,但它也输出其他信息.
我可以轻松编写这样的程序,但我更愿意使用本机Windows命令(如果可能),或者只使用全新安装的Windows XP中可用的命令.
如果您在批处理脚本中,则可以使用参数变量技巧来获取文件大小:
filesize.bat:
@echo off echo %~z1
这会给出您在问题中建议的结果.
类型
help call
在命令提示符下所有疯狂的变量操作选项.另请参阅此文章以获取更多信息.
编辑: 这仅适用于Windows 2000及更高版本
如果您不想在批处理脚本中执行此操作,可以从命令行执行此操作,如下所示:
for %I in (test.jpg) do @echo %~zI
丑陋,但它的工作原理.您还可以传入文件掩码以获取多个文件的列表:
for %I in (*.doc) do @echo %~znI
将显示每个.DOC文件的大小,文件名.
使用函数摆脱~z运算符中的某些限制,特别适用于for循环:
@echo off set size=0 call :filesize "C:\backup\20120714-0035\error.log" echo file size is %size% goto :eof :: Set filesize of first argument in %size% variable, and return :filesize set size=%~z1 exit /b 0
试试forfiles:
forfiles /p C:\Temp /m file1.txt /c "cmd /c echo @fsize"
该forfiles
命令运行命令c
为每个文件m
的目录p
.
变量@fsize
将替换为每个文件的大小.
如果文件C:\Temp\file1.txt
是27个字节,请forfiles
运行以下命令:
cmd /c echo 27
哪个打印27
到屏幕上.
作为副作用,它会清除您的屏幕,就像您运行cls
命令一样.