2013-07-12 2 views
6

배치/cmd 파일에서 프로세스가 실행되고 있는지 어떻게 확인할 수 있습니까? 프로세스가 실행중인 경우 자동으로 프로세스를 중지하려면 어떻게합니까? cmd를 스크립트 꼬추처럼 배치 스크립트를 통해 프로세스를 자동으로 중지하는 방법

, 누군가가 나에게 몇 가지 힌트를 제공하거나 나 스크립트의 종류를 만들 수 있습니다.

예 (의사 코드) :

@echo off 

:x 
PATH=C:\Windows\System32\calc.exe 
If calc.exe is ON goto Process_Stop 

:Process_Stop 
net stop calc.exe 
goto x 

답변

13

첫째로, 당신은 CALC.EXE 같은 프로세스를 중지하는 잘못된 명령이 있습니다. NET STOP은 서비스를 중지하지만 일반적인 프로그램 프로세스는 중지하지 않습니다. 대신 태권도를 원해.

둘째 - 당신이 존재하는 경우이 과정을 죽이고 싶어 알고 있다면, 왜 당신은 당신이 당신이 그것을 죽이기 전에 먼저 실행되고 있는지 확인해야 생각하십니까? 당신은 단순히 프로세스를 죽이려고 시도 할 수 있습니다. 존재하지 않으면 오류가 생성되고 해를 입지 않습니다. 그것이 존재하면 성공 메시지로 죽습니다. 오류 메시지를 표시하지 않으려면

taskkill /im calc.exe 

2>nul를 사용 NUL에 표준 오류 리디렉션합니다. 성공 메시지를 보지 않으려면 >nul을 사용하여 stdout을 nul로 리디렉션하십시오.

taskkill /im calc.exe >nul 2>nul 

당신이 결과에 따라 조치를 취할 싶은 경우에, 당신은 성공과 실패의 조건 &&|| 연산자를 사용할 수 있습니다.

taskkill /im calc.exe >nul 2>nul && (
    echo calc.exe was killed 
) || (
    echo no process was killed 
) 

이 아니면 결과에 따라 무엇을 결정하기 위해 ERRORLEVEL을 사용할 수 있습니다. 프로세스가없는 경우가

이 방법은 오류 코드를 반환하지

에서 taskkill/F가/FI "참고 ImageName EQ CALC.EXE"

0

체크 아웃 작업 목록 명령 -이 명령하면 실행중인 작업 및 서비스의 목록을 제공합니다

If calc.exe is running       
Stop calc.exe 

나는 이런 식으로 뭔가를 할 수 있습니다. 당신이 관심이 작업이 정규 표현식을 사용하여 실행중인 경우

그런 다음 서비스 나 작업을 죽일에서 taskkill 명령을 사용하십시오.

+0

이것은 대답이 아니라 답글입니다. – Neolisk

3

더 읽기 쉽고 간단한 명령은 다음과 같은 것입니다 프로세스가 실행되지 않으면/IM은 WILL 리턴 에러 스위치 여기서 실행.

에서 taskkill/F/FI "참고 ImageName의 EQ의 석회질 * .EXE"는 'CALC'로 시작하고 이름에 '이 .exe'로 끝나는 모든 프로세스를 종료하기 : 당신은 또한 같은 와일드 카드를 사용할 수 있습니다.

+1

저는 수년간 Visual Studio의 솔루션 프로젝트에서 프리 빌드 이벤트로 이것을 성공적으로 사용했습니다. – outbred

관련 문제