我正在尝试在批处理文件中获取可用磁盘空间的整数。这是我的代码(非常简单)。
@echo off
wmic logicaldisk get freespace >> freespace.log
exit
但是输出在freespace.log文件中。
FreeSpace
9772687360
57401442304
7346626560
0
0
我只需要选择整数和求和。这样求和后的输出。
74520756224
我尽力在Google上进行搜索,但找不到解决方案。请帮我:)
最佳答案
这是使用混合批处理和Powershell的精确解决方案。确实应该使用纯Powershell,vbscript或jscript完成。
标记和IF语句的非直观用法是为了补偿FOR / F与WMIC的unicode输出之间的怪异交互。
@echo off
setlocal enableDelayedExpansion
set /a freeSpace=0
for /f "skip=1 tokens=1,2" %%A in ('wmic logicaldisk get freespace') do (
if "%%B" neq "" for /f %%N in ('powershell !freeSpace!+%%A') do (
set freeSpace=%%N
)
)
echo freeSpace=%freeSpace%