Batch file 使用| Find in cmd查找多行

Batch file 使用| Find in cmd查找多行,batch-file,cmd,find,Batch File,Cmd,Find,我正在尝试创建一个批处理文件,以便在Windows 7中运行systeminfo命令,并缩小结果范围,使其不显示热修复程序信息,或仅显示某些特定行 有没有一种方法可以在不多次写出命令的情况下执行此操作? 也就是说,现在,我有以下几点: systeminfo|find "System Boot Time" systeminfo|find "Host Name" systeminfo|find "OS Name" 等等 问题是,它必须为每一行重新加载systeminfo命令中的所有信息,这需要

我正在尝试创建一个批处理文件,以便在Windows 7中运行
systeminfo
命令,并缩小结果范围,使其不显示热修复程序信息,或仅显示某些特定行

有没有一种方法可以在不多次写出命令的情况下执行此操作? 也就是说,现在,我有以下几点:

systeminfo|find "System Boot Time"

systeminfo|find "Host Name"

systeminfo|find "OS Name"
等等

问题是,它必须为每一行重新加载systeminfo命令中的所有信息,这需要相当长的时间。是否可以只运行一次命令,然后|查找并拉出多行

如果没有,是否可以使用其他命令删除信息?(我没听说过这样的东西,但不确定它是否存在)

你可以使用这个:

@ECHO OFF &SETLOCAL
systeminfo|findstr /c:"System Boot Time" /c:"Host Name" /c:"OS Name"

有关
findstr
的更多信息,请查看。

太好了!非常感谢!感谢您的
搜索。您甚至可以添加
/i
以使搜索不区分大小写。这对于
搜索是可以的,但是我们如何进行
搜索,并尝试调用findstr&findstr,然后检查errorlevel。最好先将sysinfo保存到文件中,然后在该文件上运行findstr&findstr。在之后删除该文件。您还可以从单个systeminfo命令的输出中创建一个文件,并使用find或findstr对其进行多次搜索。恩多的解决方案非常适合这三个项目,但您可能希望以不同的方式为每一个项目进一步解析这些行。