我正在尝试在批处理文件中获取整数的可用磁盘空间.这是我(非常)简单的代码.
@echo off
wmic logicaldisk get freespace >> freespace.log
exit
Run Code Online (Sandbox Code Playgroud)
但是在freespace.log文件中输出.
FreeSpace
9772687360
57401442304
7346626560
0
0
Run Code Online (Sandbox Code Playgroud)
我需要选择整数和求和.经过这样的求和输出.
74520756224
Run Code Online (Sandbox Code Playgroud)
我在谷歌搜索是最好的,但我找不到解决方案.请帮我:)
这是使用混合批次和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%
Run Code Online (Sandbox Code Playgroud)