用于/ F循环的cpu查询批处理文件

时间:2018-09-05 20:24:41

标签: for-loop cmd wmic

需要帮助。

我正在尝试在批处理文件上运行以下命令,以确定计算机是Intel还是AMD ...

  

对于/ F“ skip = 1 tokens = 1”('wmic cpu get name')中的%% i,确实设置了chip = %% i

     

如果“%chip%” ==“ Intel(R)”转到英特尔,否则转到AMD

     

:Intel回声这是一台Intel计算机

     

:AMD回声这是一台AMD机器

但是我遇到了一个问题。输出结果如下:

  
    

对于/ F“ skip = 1 tokens = 1”('wmic cpu get name')中的%i,确实设置了chip =%i

  
     

set chip = Intel(R)

     

设置筹码=

它显示了第二个芯片“集合”,基本上清除了第一个结果。

我需要输入什么才能使循环在第一次响应后停止?

1 个答案:

答案 0 :(得分:0)

设置第一行后,使用GOTO退出循环。

@ECHO OFF
FOR /F "skip=1 tokens=1" %%i IN ('wmic cpu get name') DO (
    SET "chip=%%i"
    GOTO AfterTest
)

:AfterTest

IF "%chip%" == "Intel(R)" (GOTO Intel) ELSE (GOTO AMD)

:Intel
echo this is an Intel machine
ECHO This is Intel.
GOTO AfterAll

:AMD
echo this is an AMD machine
ECHO This is not Intel.
GOTO AfterAll

:AfterAll

获取处理器名称的另一种方法。

@ECHO OFF
FOR /F "delims=" %%p IN ('powershell -NoProfile -Command ^(Get-CimInstance -ClassName CIM_Processor^).Name.Split^(' '^)[0]') DO (
    SET "chip=%%p"
)
ECHO %chip%