本帖最后由 aries215 于 2019-1-10 07:21 编辑
我自己写出来了,参考了@Batcher的代码。
不过,如果有NTFS压缩和硬链接,会影响计算结果。- @echo off
- SetLocal EnableDelayedExpansion
- for /f "tokens=2,3" %%a in ('echo;list vol^|diskpart') do (
- if /i %%b equ c (
- set "var=%%a"
- set n=1
- for /f "skip=22 tokens=3,4" %%i in ('cmd.exe /c "echo select vol !var! & echo detail vol"^|diskpart') do (
- if !n! equ 1 (
- if /i %%j equ MB set /a "total=%%i" & set "unit=0"
- if /i %%j equ GB set /a "total=%%i*1049" & set "unit=1"
- ) else if !n! equ 2 (
- if /i %%j equ MB set /a "free=%%i" & set "unit=0"
- if /i %%j equ GB set /a "free=%%i*1049" & set "unit=1"
- )
- set /a n+=1
- )
- )
- )
-
- if defined unit (
- set /a "SystemSize=!total!-!free!"
- ) else (
- goto err0
- )
- echo !SystemSize!
- pause
复制代码
|