我写了一个命令行
sc query PlugPlay | FIND "SERVICE_NAME" | FIND "STATE"
仅列出服务名称及其状态,但不提供任何输出。请纠正我如何仅列出服务名称及其状态(运行或停止)。
我写了一个命令行
sc query PlugPlay | FIND "SERVICE_NAME" | FIND "STATE"
仅列出服务名称及其状态,但不提供任何输出。请纠正我如何仅列出服务名称及其状态(运行或停止)。
您可以使用 Windows 的内置findstr
命令执行此操作。如果你给它多个单词来查找,用空格分隔,它将打印匹配任何单词的行(即findstr "a b"
等同于grep -E 'a|b'
)。
sc query plugplay | findstr "SERVICE_NAME STATE"
像这样运行两个管道不是“或”操作,而是“与”操作。它只会输出同时包含 SERVICE_NAME 和 STATE 的行(这将是 none,因此没有输出是正确的)。如果你只运行第一个 find 它给出
C:\>sc query PlugPlay | FIND "SERVICE_NAME"
SERVICE_NAME: PlugPlay
C:\>
因此状态信息已被删除。
windowsfind
命令太简单了,只能做你想做的事,但可以使用unix grep命令来实现。以 cygwin为例:
$ sc query PlugPlay | grep -E 'SERVICE_NAME|STATE'
SERVICE_NAME: PlugPlay
STATE : 4 RUNNING
$