我希望可用空间以 GB 为单位,而不是 MB。我该如何更改?
for /f "tokens=3" %%a in ('dir c:\') do (
set bytesfree=%%a
)
set bytesfree=%bytesfree:,=%
echo Free space on partition C: [%bytesfree%] B
endlocal && set bytesfree=%bytesfree%
答案1
- 对于命令行:
for /f usebackq^tokens^=4delims^=^>^< %i in (`wmic logicaldisk where Caption^="C:" get FreeSpace /format:xml^|find "VALUE"`)do for /f %G in ('start "" /b /min mshta "vbscript:Execute("createobject(""scripting.filesystemobject""^).GetStandardStream(1^).write(Round(%i/1073741824^)^):close")"^|more')do echo\Free space on partition C: [%G] GB
- 对于 bat/cmd 文件:
@echo off
for /f usebackq^tokens^=4delims^=^>^< %%i in (`wmic logicaldisk where Caption^="C:" get FreeSpace /format:xml^|find "VALUE"`)do for /f %%G in ('
start "" /b /min mshta "vbscript:Execute("createobject(""scripting.filesystemobject""^).GetStandardStream(1^).write(Round(%%i/1073741824^)^):close")"^|more
')do echo\Free space on partition C: [%%G] GB
- 您没有以 MB 或 GB 为单位提供可用空间的选项
- 要获得 MB 或 GB 单位,有时你必须从单位字节进行转换
- 请参阅
set /a
命令可以转换单位,但32 位整数限制 - 转换时,需要使用动态数据库或者 电源外壳,在混合模式或在“混合”命令行中。
- 可以在混合模式或 bat 文件中使用“混合”行,如上例所示,可以使用
mshat.exe
用vbs解释执行所需的字节到 GB 的转换: