在命令行输出中searchstring

我想在“ sysinfo命令的“ system model ”属性中searchstring“ virtual ”。 如果在'系统模型:————————-'(即systeminfo的输出)中find'virtual',该命令应该是成功的。 它不应该在systeminfo命令的整个输出中search“虚拟”,而应该只在系统模型属性中执行。 例如命令

systeminfo | findstr /i "system model" 

我会得到类似的东西

 System Model: HP Compaq dc7800p Small Form Factor 

在输出的上面一行中,我想要searchstring虚拟,并且想要使用错误级别进行操作。 所以请帮助我做到这一点。

以下是我试过的那个不正确的。 或者帮我,如果我可以使用正则expression式

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

提前致谢

尝试这个:

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