Are*_*ete 3 windows command-line batch-file
我已使用此问题来获取磁盘大小信息。我刚开始批量编程,因此请耐心等待。
@echo off & setlocal ENABLEDELAYEDEXPANSION
SET "volume=C:"
FOR /f "tokens=1*delims=:" %%i IN ('fsutil volume diskfree %volume%') DO (
SET "diskfree=!disktotal!"
SET "disktotal=!diskavail!"
SET "diskavail=%%j"
)
FOR /f "tokens=1,2" %%i IN ("%disktotal% %diskavail%") DO SET "disktotal=%%i"& SET "diskavail=%%j"
(ECHO(Information for volume %volume%
ECHO(TOTAL SIZE ---------- %disktotal:~0,-9% GB
ECHO(AVAILABLE SIZE ------- %diskavail:~0,-9% GB)
pause
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
Information for volume C:
TOTAL SIZE ---------- 240 GB
AVAILABLE SIZE ------- 135 GB
Run Code Online (Sandbox Code Playgroud)
现在如何通过从总大小中减去可用大小来计算使用的磁盘空间?我知道我必须使用该SET命令,/A但是我不知道如何正确执行它。
替换为:
FOR /f "tokens=1,2" %%i IN ("%disktotal% %diskavail%") DO SET "disktotal=%%i"& SET "diskavail=%%j"
(ECHO(Information for volume %volume%
ECHO(TOTAL SIZE ---------- %disktotal:~0,-9% GB
ECHO(AVAILABLE SIZE ------- %diskavail:~0,-9% GB)
Run Code Online (Sandbox Code Playgroud)
有了这个:
SET /a diskused=%disktotal:~0,-9% - %diskavail:~0,-9%
ECHO(Information for volume %volume%
ECHO(TOTAL SIZE ---------- %disktotal:~0,-9% GB
ECHO(AVAILABLE SIZE ------- %diskavail:~0,-9% GB
ECHO(USED SIZE ------------ %diskused% GB
Run Code Online (Sandbox Code Playgroud)
您的原件无缘无故分配a disktotal和diskavail- 的值是多余的,因为前一个已经分配了它们for。
使用进行计算set /a,从总数中减去可用的数据(以GB为单位)。
| 归档时间: |
|
| 查看次数: |
3187 次 |
| 最近记录: |