2014-04-20 3 views
0

서버 이름 목록 인 "servers.txt"를 가져와 개별 이름을 서비스 제어 명령에 연결하는 아래 배치 파일이 있습니다.검색 PC 목록 | 서비스가 실행중인 경우 PC 이름을 파일로 복사

for /f %%a in (servers.txt) do (
sc \\%%a query "service_name" 
) 

이렇게하면 서비스가 실행 중인지 아닌지 알 수 있습니다. 약 900 + 서버의 목록과 함께, 내가 원하는 것은, 특정 서버에서 서비스가 발견되면 해당 서버 이름을 파일에 추가하는 것입니다.

뭔가 같은 :

for /f %%a in (servers.txt) do (
sc \\%%a query "service_name" | findstr /i "Running" %%a >> "running.txt" 
) 

나는 문, 고토와없는 경우이를 사용하여 시도했지만, 분명히 내 구문이 잘못되었습니다.

감사

은/어떤 이유

답변

0
for /f "tokens=* delims=" %%a in (servers.txt) do (
sc \\%%a query "service_name" 2>&1 | findstr /i "Running" >nul 2>&1 && echo %%a 
)>>running.txt 
+0

BT는, 위는 txt 파일에 기록되지 않습니다. 위의 모든 내용을 명령 줄에 그냥 인쇄하고 있습니다. 나 또한 이것을 시도 : '/ f %% a에 대한 (servers.txt) do ( sc \\ %% 쿼리 "service_name"| findstr/i "실행"%% a> nul 2> & 1 && echo %% a * >> * "running.txt" )' – btgream

+0

@btgream yees. 리다이렉션을 잊어 버렸습니다. – npocmaka

+0

가 이상하게 정확하게 동일한 결과를 얻습니다. – btgream

0
wmic /node:"@c:\servers.txt" service where "name='wudfsvc'" get name, started, status /format:hform > Services.html 
+0

wmic /node:"C:\Users\ComputerName.txt "service"name = 'wudfsvc'and started ='true ' "get name, started, status/format : htable> Services.html –