显示分区上的可用空间 - 批处理脚本

显示分区上的可用空间 - 批处理脚本

我希望可用空间以 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 

  1. 您没有以 MB 或 GB 为单位提供可用空间的选项
  2. 要获得 MB 或 GB 单位,有时你必须从单位字节进行转换
  3. 请参阅set /a命令可以转换单位,但32 位整数限制
  4. 转换时,需要使用或者 ,在混合模式或在“混合”命令行中。
  5. 可以在混合模式或 bat 文件中使用“混合”行,如上例所示,可以使用 mshat.exe用vbs解释执行所需的字节到 GB 的转换:

相关内容