Lia*_*iam 41 windows command-line
是否有Windows命令将输出指定文件的大小(如下所示)?
> filesize test.jpg
65212
Run Code Online (Sandbox Code Playgroud)
我知道dir命令输出这些信息,但它也输出其他信息.
我可以轻松编写这样的程序,但我更愿意使用本机Windows命令(如果可能),或者只使用全新安装的Windows XP中可用的命令.
Mik*_*ton 47
如果您在批处理脚本中,则可以使用参数变量技巧来获取文件大小:
filesize.bat:
@echo off
echo %~z1
Run Code Online (Sandbox Code Playgroud)
这会给出您在问题中建议的结果.
类型
help call
Run Code Online (Sandbox Code Playgroud)
在命令提示符下所有疯狂的变量操作选项.另请参阅此文章以获取更多信息.
编辑: 这仅适用于Windows 2000及更高版本
Pat*_*uff 42
如果您不想在批处理脚本中执行此操作,可以从命令行执行此操作,如下所示:
for %I in (test.jpg) do @echo %~zI
Run Code Online (Sandbox Code Playgroud)
丑陋,但它的工作原理.您还可以传入文件掩码以获取多个文件的列表:
for %I in (*.doc) do @echo %~znI
Run Code Online (Sandbox Code Playgroud)
将显示每个.DOC文件的大小,文件名.
Dav*_*che 11
使用函数摆脱~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
Run Code Online (Sandbox Code Playgroud)
小智 10
试试forfiles:
forfiles /p C:\Temp /m file1.txt /c "cmd /c echo @fsize"
Run Code Online (Sandbox Code Playgroud)
该forfiles
命令运行命令c
为每个文件m
的目录p
.
变量@fsize
将替换为每个文件的大小.
如果文件C:\Temp\file1.txt
是27个字节,请forfiles
运行以下命令:
cmd /c echo 27
Run Code Online (Sandbox Code Playgroud)
哪个打印27
到屏幕上.
作为副作用,它会清除您的屏幕,就像您运行cls
命令一样.
由于您使用的是 Windows XP,因此可以选择 Windows PowerShell。
(Get-Item filespec ).Length
Run Code Online (Sandbox Code Playgroud)
或者作为一个函数
function Get-FileLength { (Get-Item $args).Length }
Get-FileLength filespec
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
169188 次 |
最近记录: |