пакетный файл для запроса процессора с использованием цикла for / F - PullRequest
0 голосов
/ 05 сентября 2018

нужна помощь.

Я пытаюсь выполнить следующую команду в командном файле, чтобы определить, является ли компьютер Intel или AMD ...

for / F "skip = 1 tokens = 1" %% i in ('wmic cpu get name') сделать чип = %% i

если "% chip%" == "Intel (R)" перейти к Intel, иначе перейти к AMD

: Intel echo, это машина Intel

: AMD эхо, это машина AMD

но я столкнулся с проблемой. Выходные данные показывают следующее:

for / F "skip = 1 tokens = 1"% i in ('wmic cpu get name') сделать чип =% i

набор микросхем = Intel (R)

набор микросхем =

Показывает второй "набор" фишек, в основном очищающий первый результат.

Что мне нужно ввести для остановки цикла после первого ответа?

1 Ответ

0 голосов
/ 05 сентября 2018

После установки первой строки выйдите из цикла с 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%
...