需要帮助。
我正在尝试在批处理文件上运行以下命令,以确定计算机是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)
设置筹码=
它显示了第二个芯片“集合”,基本上清除了第一个结果。
我需要输入什么才能使循环在第一次响应后停止?
答案 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%