You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写批处理代码将每行输出存入独立变量

Windows批处理:将WMIC内存容量输出逐行存入独立变量

问题场景

使用wmic memorychip get capacity命令可获取系统各内存条的容量,输出格式如下:

wmic memorychip get capacity

输出结果:

Capacity
4294967296
4294967296
8589934592
4294967296

现有代码仅能提取第一行有效数据,无法将后续行存入独立变量:

for /f "tokens=2 delims==" %%A in ('wmic memorychip get capacity /value ^| find /i "Name="') do set capacity=%%A

echo %capacity%

输出结果:

4294967296

需要将每条内存容量分别存入capacity1、capacity2、capacity3、capacity4等独立变量,用于后续计算。

解决方案代码

@echo off
setlocal enabledelayedexpansion
set count=0

:: 跳过标题行,过滤空行,逐行读取内存容量
for /f "skip=1 tokens=*" %%A in ('wmic memorychip get capacity ^| findstr /r /v "^$"') do (
    set /a count+=1
    set "capacity!count!=%%A"
)

:: 输出所有内存容量变量
echo 检测到%count%条内存:
echo capacity1=!capacity1!
echo capacity2=!capacity2!
echo capacity3=!capacity3!
echo capacity4=!capacity4!

:: 后续计算示例:计算总内存容量
set total=0
for /l %%i in (1,1,%count%) do (
    set /a total+=!capacity%%i!
)
echo 总内存容量:!total! 字节

endlocal

代码说明

  • setlocal enabledelayedexpansion:启用延迟变量扩展,支持在循环中动态生成和访问变量
  • skip=1:跳过WMIC输出的第一行标题行
  • findstr /r /v "^$":过滤WMIC输出中的空行,避免无效赋值
  • 通过count计数器动态生成变量名(capacity1、capacity2...),将每行容量值对应存入
  • 最后附带了总内存求和的示例,可根据需求修改后续计算逻辑

内容的提问来源于stack exchange,提问作者Sina Sadeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:52:45