How can I convert this raw bytes output to GB?

前端 未结 5 1927
陌清茗
陌清茗 2020-12-21 07:08

I\'m using the below code to output the current free space on the C: Drive. How can I convert the output from bytes to GB using batch?

@echo off
for /f \"use         


        
5条回答
  •  一生所求
    2020-12-21 08:06

    Batch does not support float point arithmetic. This would be a nice workaround:

    @setlocal enableextensions enabledelayedexpansion
    @echo off
    
    for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get       FreeSpace /format:value`) do set FreeSpace=%%x
    
    echo !FreeSpace:~0,-10!,!FreeSpace:~2,-8!GB
    

    It only works if you run the .bat as administrator. It just inserts a dot after the 9. digits from the right, and trims the last 7. This is not exactly matching the value from windows, because 1k is here 1000 and not 1024

    A better but more complex solution would be to use VBScript, described in the following article: Article

提交回复
热议问题