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

Batch file 如何使用批处理脚本获取所有分区的总大小?,batch-file,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

我需要用批处理脚本获得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监控


有人能帮我吗?

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

检查屏幕截图以实现

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

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


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

亲爱的Stephan我听不懂这篇文章,你能解释一下我的代码吗?为了简化,你的数字太多,无法使用
Set/A
算法。有些变通方法不需要寻求其他实用程序、程序或语言的帮助,但这些方法非常复杂,不值得付出努力。我们不是来根据参考资料为您编写代码的,不幸的是,这是您的工作。除上述内容外,请您解释一下任务的目的/最终目标。是否要确定分配给一个特定设备上的分区的总大小、每个设备上分配给分区的总大小、所有设备上分配给分区的总大小、每个设备上分配给分区的总大小、所有设备上分配给分区的总大小,或其他。我能看到的最大问题是,无论
Set/A
功能有限,您都没有以正确的方式执行任务。实际上,我想知道windows计算机上磁盘的总大小和可用大小。我不需要每个分区的大小分开。最后,我需要一个简短的脚本来计算并将其返回到我的zabbix monitoring Remotely。您需要这样做:它清楚地显示和解释您在评论中发布的任务,因为它与您在问题区域中的任务明显不同。