16

我想在“ sysinfo ”命令的“ system model ”属性中搜索字符串“ virtual ”。如果在'system model: -------------------------'即 systeminfo 的输出中找到 'virtual',则该命令应该是成功的。它不应该在 systeminfo 命令的整个输出中搜索“虚拟”,而应该只在系统模型属性中搜索。例如命令

systeminfo | findstr /i "system model" 

我会得到类似的东西

System Model:              HP Compaq dc7800p Small Form Factor

在上面的输出行中,我想搜索字符串 virtual,并想使用 errorlevel 进行操作。所以请帮助我做到这一点。

以下是我尝试过的不正确的。或者如果我可以使用正则表达式,请帮助我

systeminfo | findstr /i /R  "system model: virtual machine" > nul
if %errorlevel% == 0 (
   echo virtual machine
) ELSE (
   echo physical machine
)

提前致谢

4

1 回答 1

14

尝试这个:

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 版本将使用不同的名称。

于 2012-09-17T08:39:27.883 回答