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

如何在批处理中从WMI查询结果提取处理器型号子串

批处理提取WMI处理器型号及通用提取方法

问题背景

现有批处理通过WMI获取笔记本/台式机的处理器名称,格式示例:

Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz

需求:

  1. 提取中间的处理器型号(如i7-6820HQ),型号位置不固定
  2. 修正现有主频提取方法的无效字符问题
  3. 仅用原生批处理实现,不使用PowerShell

现有代码片段:

rem proc. info
setlocal enableDelayedExpansion
for /f "tokens=2 delims=," %%a in ('wmic cpu get Name^ /format:csv') do (
    set PRCNAM=%%a 
rem && echo !PRCNAM!| findstr /r /c:"!PRCNAM!" >nul && (
rem echo FOUND
    )

echo PRCNAM : %PRCNAM%
echo PRCSPD : %PRCNAM:~-9,7%
echo.
)

解决方案代码

@echo off
setlocal enableDelayedExpansion

rem 获取处理器名称并清理无效字符
for /f "tokens=2 delims=," %%a in ('wmic cpu get Name^ /format:csv') do (
    set "PRCNAM=%%a"
    rem 去除字符串末尾的回车符(WMI输出的常见问题)
    for /f "delims=" %%b in ("!PRCNAM!") do set "PRCNAM=%%b"

    rem 提取处理器型号:匹配iX-XXXX[后缀]格式
    for /f "delims=" %%c in ('echo !PRCNAM! ^| findstr /r /c:"i[3579]-[0-9][0-9][0-9][0-9][A-Z]*"') do (
        set "PRCMODEL=%%c"
    )

    rem 提取主频:匹配@后的数字+GHz格式
    for /f "delims=@ " %%d in ('echo !PRCNAM! ^| findstr /r /c:"@ [0-9.]*GHz"') do (
        set "PRCSPEED=%%d"
    )

    rem 输出结果
    echo 处理器全名: !PRCNAM!
    echo 处理器型号: !PRCMODEL!
    echo 处理器主频: !PRCSPEED!
    echo.
)
endlocal

代码说明

  1. 清理WMI输出无效字符:WMI的CSV输出会在字符串末尾追加回车符,通过嵌套for /f "delims="循环可去除这些非打印字符,避免后续字符串操作出错。
  2. 提取处理器型号:利用findstr的正则匹配,针对Intel酷睿系列型号规律(i3/i5/i7/i9-四位数字+可选后缀),正则表达式i[3579]-[0-9][0-9][0-9][0-9][A-Z]*可精准匹配型号部分。
  3. 提取主频:通过delims=@ 拆分字符串,直接获取@后的主频值,避免原方法固定位置截取的局限性,同时解决无效字符问题。

批处理从WMI输出提取子字符串的通用方法

  • 处理WMI输出特殊性:WMI命令输出常包含空行、回车符等无效字符,必须通过嵌套for /f "delims="循环清理,确保字符串干净。
  • 利用正则匹配(findstr):当目标子串有固定格式规律时,优先用findstr /r的正则表达式匹配,无需依赖固定位置截取,适配更多场景。
  • 延迟变量扩展(enableDelayedExpansion):在循环内修改变量后,必须用!变量名!代替%变量名%才能读取最新值,避免变量替换提前完成。
  • 字符串拆分(for /f delims/tokens):如果目标子串前后有固定分隔符(如示例中的@、空格),可以用delims指定分隔符,直接拆分出目标内容。
  • 过滤空行:在for /f中添加skip=1(针对WMI表头)或结合findstr /v "^$"过滤空行,避免无效循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:05:32