windows - 在命令行输出中搜索字符串

标签 windows batch-file command prompt

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

systeminfo | findstr /i "system model" 

我会得到类似的东西

System Model:              HP Compaq dc7800p Small Form Factor

在上面的输出行中,我想搜索虚拟字符串,并想使用错误级别进行操作。所以请帮我做这件事。

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

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

关于windows - 在命令行输出中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12453733/

相关文章:

c++ - 如何向 QFileDialog 添加自定义项?

batch-file - 如何让forfiles在PATH中执行命令?

windows - 将多个文件从多个文件夹 move 到一个文件夹

Windows批处理脚本切换桌面背景

linux - 使用 cat 命令作为编辑器时出现权限错误

vim - Vim 或 Vi 是否有多个范围命令?

php - 通过网络从共享文件中读取数据

ios - 如何用windows PC调试ios.iphone网站

windows - IIS:对不在域中的客户端计算机使用 Kerberos

linux - 在哪里可以获得 "setfacl"Linux/Unix 命令的源代码