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