Windows批处理:提取diskpart输出数值至变量并执行减法运算
Windows批处理提取磁盘可回收空间并计算
实现步骤
要提取diskpart输出中括号内的数字并完成减法运算,可通过嵌套for /f循环解析字符串,具体代码如下:
@echo off setlocal set "size1=" :: 捕获diskpart输出并提取括号内的数字 for /f "delims=" %%a in ('(echo sel vol c^&echo shrink querymax^&echo exit^)|diskpart.exe^|findstr "MB)"') do ( :: 提取()包裹的内容 for /f "tokens=2 delims=()" %%b in ("%%a") do ( :: 提取内容中的数字部分 for /f "tokens=1 delims= " %%c in ("%%b") do ( set "size1=%%c" ) ) ) :: 计算size2并输出结果 if defined size1 ( set /a "size2=size1-20000" echo 可回收空间(MB): %size1% echo 调整后空间(MB): %size2% ) else ( echo 无法获取可回收空间信息 ) endlocal
代码说明
- 外层
for /f:捕获diskpart经findstr过滤后的目标行,delims=确保保留整行内容不拆分。 - 第一层嵌套
for /f:以(和)为分隔符,提取括号内的内容(如884312 MB)。 - 第二层嵌套
for /f:以空格为分隔符,提取括号内容中的纯数字部分,赋值给size1。 set /a命令:直接对变量执行算术运算,计算size2 = size1 - 20000,无需额外变量引用符号。
内容的提问来源于stack exchange,提问作者SmplJohn
相关产品推荐
相关产品推荐

