如何使用批处理脚本获取所有分区的总大小?

时间:2019-10-31 08:04:03

标签: batch-file

我需要使用批处理脚本获取Windows上所有分区大小的总和。 为此,我编写了一个脚本,该脚本只能回显每个分区的大小,但是当我想要对它们进行求和时,出现错误“无效数字。数字限于32位精度。”

我的代码不加和:

@echo off
for /f %%a in ('WMIC LOGICALDISK WHERE "drivetype=3" GET Size^|findstr [0- 
9]') do echo %%a

我的代码加上和:

@echo off
SET total=0
for /f %%a in ('WMIC LOGICALDISK WHERE "drivetype=3" GET Size^|findstr [0-9]') do (
SET /a total+=%%a
)
echo %total%

并输出:

Invalid number.  Numbers are limited to 32-bits of precision.
Invalid number.  Numbers are limited to 32-bits of precision.
Invalid number.  Numbers are limited to 32-bits of precision.
0

我找不到解决问题的办法。

实际上,我想知道Windows计算机上磁盘的总大小以及其上的可用大小。我不需要每个分区的大小。最后,我需要一个简短的脚本来计算并将其返回给我的zabbix远程监视

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您不需要脚本,可以使用zabbix聚合函数来实现。

检查屏幕截图以实现。

enter image description here

示例 主机组“ MySQL服务器”的总磁盘空间。

grpsum [“ MySQL服务器”,“ vfs.fs.size [/,total]”,最后]

grpavg [[“服务器A”,“服务器B”,“服务器C”],system.cpu.load,last]