loa*_*now 6 file batch-file filesize
有没有办法在属性窗口中获取文件的磁盘大小:
我试过了:
(在批处理文件中)
echo %~z1
Run Code Online (Sandbox Code Playgroud)
,
for %i in (TestFile.txt) do echo %~zi
Run Code Online (Sandbox Code Playgroud)
,
dir
Run Code Online (Sandbox Code Playgroud)
但它们只返回文件的大小.
有没有办法像在属性窗口中看到的那样获得"磁盘大小"?
有趣的问题.我不知道磁盘值的大小是任何可编写脚本的对象的属性.您可以通过获取文件大小模数每个群集,从文件大小中减去该模数,然后添加群集大小来计算它.(编辑:或使用Aacini更有效的计算,我仍然试图理解.)
@echo off
setlocal
for %%I in (Testfile.txt) do (
set "fs=%%~zI"
for /f %%J in (
'wmic volume where "driveletter='%%~dI'" get blocksize /value'
) do 2>nul set /a %%J
)
echo Size: %fs%
set /a ondisk = ((fs-1)/blocksize+1) * blocksize
echo Size on disk: %ondisk%
Run Code Online (Sandbox Code Playgroud)
许多网站声称这fsutil fsinfo ntfsinfo DRIVE:是获得每个群集的字节数的最佳方式.看起来这种方法充满了危险,不同的标签取决于区域设置和不同版本的Windows的不同行数.此外,正如Marged所说,fsutil需要提升.这种WMI方法似乎更普遍,并且不需要管理员权限.
感谢JosefZ,Marged和Aacini的所有投入!