2016-07-27 2 views
0

현재 특정 서비스가 중지 되더라도 "cmd.exe"프로세스가 활성 상태로 남아있는 문제가 있습니다. 이로 인해 폴더에서 작업을 수행하고 이름이 바뀌거나 이동 된 것을 방지하는 자동화 된 스크립트에 문제가 발생합니다.문자열이 포함 된 BAT 파일에서 특정 cmd.exe를 제거하십시오.

내 자동화 된 스크립트가 BAT 파일에서 실행되므로 TASKKILL로 죽일 수 있다고 생각합니다. "프로세스 탐색기"를 사용하여 폴더 이름을 검색하여이를 사용하고있는 "cmd.exe"를 찾을 수있었습니다. 어떤 유형의 "Contains String"이 없어도이를 자동화하는 방법을 찾는 데 어려움이 있습니다. 내 의사 예입니다 ...

taskkill /IM cmd.exe /FI "NAME contains TC38247178584278321320778" 
php\php.exe migration.php TC38247178584278321320778 

enter image description here

+0

다음은 더 나은 해결책으로 이어질 수있는 또 다른 질문입니다. [파일을 열 수있는 프로세스는 어떻게 찾습니까?] (https://blogs.msdn.microsoft.com/oldnewthing/20120217-00) /? p = 8283) 그리고 대답은 다음과 같습니다. [Restart Manager] (https://msdn.microsoft.com/en-us/library/windows/desktop/cc948910.aspx)를 사용하십시오. – IInspectable

+0

이것은 매우 깔끔하게 보입니다. 비록 현재 BAT와 PHP 파일을 사용하고 있습니다. –

+0

[PowerShell] (https://msdn.microsoft.com/en-us/powershell/mt173057)으로 전환 할 수 있다면, .aspx) 배치 파일 대신, 이것은 실행 가능한 옵션이 될 것입니다. P/Invoke 호출이 많은 경우에도 마찬가지입니다. – IInspectable

답변

0
wmic process where "commandline like '%TC38247178584278321320778%'" get name 

다음 명령이 wmic /node /?

wmic process where "commandline like '%TC38247178584278321320778%'" call terminate 

wmic /?, wmic process /?, wmic process get /?, wmic process call /?, wmic process set /?, wmic /format /?를 참조 죽일 것을 볼 수 , etc.

Like%이고 0보다 많고 _은 단일 문자입니다. 그렇지 않으면 =, <>, <, >, <=, =>.

관련 문제