Поиск строки в выводе командной строки
Я хочу найти строку виртуальный "в атрибуте системной модели" команды sysinfo. Команда должна быть успешной, если "виртуальная" находится в системной модели : ------------------------- ' т.е. выход systeminfo. Он не должен искать "виртуальный" в целом вывод команды systeminfo, но должен делать только в атрибуте системной модели.
Например, команда
systeminfo | findstr /i "system model"
Я получу что-то вроде
System Model: HP Compaq dc7800p Small Form Factor
в вышеприведенной строке вывода я хочу искать строку virtual и хочу манипулировать с использованием уровня ошибок. Поэтому, пожалуйста, помогите мне сделать это.
Следующим является тот, который я пробовал, который был неправильным.
Или помогите мне, если я могу использовать регулярные выражения
systeminfo | findstr /i /R "system model: virtual machine" > nul
if %errorlevel% == 0 (
echo virtual machine
) ELSE (
echo physical machine
)
Заранее спасибо
Ответы
Ответ 1
Попробуйте следующее:
systeminfo | findstr /I /B /C:"system model" | findstr /I "virtual"
if %errorlevel% == 0 (
echo virtual machine
) else (
echo real machine
)
Я тестировал реальную и виртуальную систему и отлично работает на WinXp и Win7.
Обратите внимание, что строка system model
используется только в английских версиях Windows. В версиях Windows на других языках будут использоваться разные имена.