2013-01-09 5 views
1

에서 작동하지 않습니다 "찾기"나는는 않는 이유는 여러 SC 쿼리

sc query PlugPlay | FIND "SERVICE_NAME" | FIND "STATE" 

는 서비스 이름과 상태를 나열하려면 명령 줄을 쓴하지만 출력을 포기하지 않을거야. 서비스 이름과 그 상태 (실행 또는 중지) 만 나열하는 방법을 알려주십시오.

+0

가능한 한 http://stackoverflow.com/questions/2613826/regular-expressions-in-findstr의 중복 –

답변

0

"or"연산이 아닌 두 개의 파이프를 실행하면 "and"연산입니다. SERVICE_NAME 및 STATE를 모두 포함하는 행만 출력합니다 (아무 것도 없으므로 출력이 정확하지 않습니다). 첫 번째 찾기 만 실행하면

C:\>sc query PlugPlay | FIND "SERVICE_NAME" 
SERVICE_NAME: PlugPlay 

C:\> 

이되므로 상태 정보가 이미 제거됩니다.

windows find 명령은 너무 간단하고 원하는대로 할 수는 있지만 유닉스 grep 명령을 사용하여 수행 할 수 있습니다. 예를 들어 cygwin에서 :

$ sc query PlugPlay | grep -E 'SERVICE_NAME|STATE' 
SERVICE_NAME: PlugPlay 
     STATE    : 4 RUNNING 
$ 
1

당신은 윈도우 내장에 findstr 명령을 사용하여이 작업을 수행 할 수 있습니다. 공백으로 구분하여 찾을 단어를 여러 개 지정하면 단어와 일치하는 행을 인쇄합니다 (예 : findstr "a b"grep -E 'a|b'과 같습니다).

sc query plugplay | findstr "SERVICE_NAME STATE"