Windows C驱动器上的实际可用空间是多少

时间:2013-12-05 04:02:08

标签: windows batch-file storage hard-drive

我有一个批处理脚本,我需要确保至少有3 GB的可用空间。

要通过命令行获取可用空间,请键入:

fsutil volume diskfree C: | find /i "avail free"
Total # of avail free bytes  : 872762081280

这是字节数,当您右键单击' - >时,也会显示相同的字节数。你的C盘上的'财产'。

然而,当我'右键'' - >在我的C盘上的'property',在872,762,081,280旁边,它显示了GB值仅为812GB的可用空间。这与872762081280的字节值完全不同。

我认为这可能是由于1024bytes = 1kb的Windows转换造成的。但是,这个转换将显示我有852,306,720kb可用(或852GB)仍然不接近'Local Disk(C :) Properties'窗口向我显示的812GB。

有没有人知道哪个窗口正在使用哪个数字将872,762,081,280字节转换为812GB?

5 个答案:

答案 0 :(得分:6)

KB中有1024个字节,MB中为1024 KB,GB中为1024 MB:

872762081280 bytes           1 KB              1 MB          1 GB
                       x    -------       x   ------   x    -----     = 812 GB
                            1024 bytes        1024 KB       1024 MB

请注意,KB,MB和GB的使用遵循JEDEC内存标准命名法

根据IEC 60027表示法,这些将由KiB,MiB和GiB表示

由于它们都使用1024的倍数,因此存在很多混淆,但是Decimal命名法使用相同的KB,MB和GB但是使用1000的倍数,如某些磁盘制造商所使用的那样

答案 1 :(得分:5)

872762081280 / 1024 / 1024 / 1024 = 812

答案 2 :(得分:3)

您可以通过这种方式获得GB中的可用空间数量:

for /F "tokens=2 delims=:" %%a in ('fsutil volume diskfree C: ^| find /i "avail free"') do set bytes=%%a
set /A GB=%bytes:~0,-3%/1024*1000/1024/1024
echo GB=%GB%

答案 3 :(得分:1)

最简单的方法是记住KB,MB和GB基于2的幂。

    1 KB = 2^10 (2 to the 10th power or 1,024 bytes)
    1 MB = 2^20 (2 to the 20th power or 1,048,576 bytes)
    1 GB = 2^30 (2 to the 30th power or 1,073,741,824 bytes)

您需要做的就是将您的大号除以2 ^ 30以获得GB的数量。

    Your value: 872,762,081,280 bytes
    KB............  MB..........  GB.........
       852306720.0      832330.8      812.823

答案 4 :(得分:0)

@echo off
setlocal
set drive=C
set free=?

rem Note: WMIC will output unicode text
wmic logicaldisk where (caption = "%drive%:") get freespace>"%temp%\free.tmp"
for /f %%A in ('type "%temp%\free.tmp"') do (set free=%%A)

SET free=%free:~0,7%
SET /a "free=(((free/1024)*1000)/1024*100)/1024"
::SET free=%free:~7,5%
echo Free space: %free% Gb
rem if exist "%temp%\free.tmp" del "%temp%\free.tmp"

pause