2013-04-25 2 views
1

주어진 프로세스를 중지시키기위한 간단한 배치 파일을 작성했습니다.배치 파일이 직접 실행되지 않음 (더블 클릭)

@ECHO OFF 
set /p ProcName=Enter process name: 
taskkill /IM "%ProcName%" /t /f 

taskkill.bat으로 저장했습니다. 이 박쥐 파일을 두 번 클릭하면 명령 프롬프트 창이 나타나고 묻습니다. Enter process name: 동일한 메시지를 묻고 실행할 때마다 제공 한 프로세스 이름이 무엇이든 taskkill 명령을 전혀 실행하지 않았습니다.

이제 cmd 창에서 배치 파일을 드래그하고 평소와 같이 묻습니다. Enter process name: 프로세스 이름을 지정하면 프로세스가 성공적으로 종료되었습니다.

처음 발생한 일은 무엇입니까? 왜 두 번째로 실행됩니까?

+1

당신이 관리자와 스크립트가 두 번째 시간을 priviliges 실행 했습니까? 'taskkill'은 관리자 권한이 필요합니다. 그렇지 않으면'access dennied'가 출력 될 것입니다 (스크립트가 끝날 때 멈추도록 설정할 수 있습니다.) 특별한 권한이 필요없는 프로세스를 죽이려면'tskill ' – npocmaka

+1

바로! 하지만 명령 프롬프트에서 배치 파일을 드래그했을 때 명령 프롬프트가 관리자 권한없이 실행되고 있었습니까? 수락 할 수 있도록 답변으로 게시하십시오. – Reuben

답변

2

누군가 배치 파일 이름이 실행 파일과 동일하다는 것을 알게되었습니다.

taskkill.bat 작동하지 않을 것

...

+0

답장을 보내 주셔서 감사합니다. 그러나 이것은 올바른 대답입니다. 파일 이름과 명령 이름이 같습니다. task_kill.bat 파일 이름을 변경하고 간단한 두 번 클릭이 작동합니다. 관리자 권한으로 시작할 필요가 없습니다. – Reuben

+0

오 ~ 이런 ...-) – npocmaka

1

두 번째 시간을 관리자 권한으로 스크립트를 실행 했습니까? taskkill은 관리자 권한을 실행해야합니다. 그렇지 않으면 이 출력됩니다 (어떤 일이 발생하는지 보려면 스크립트 끝 부분에서 일시 중지를 설정할 수 있습니다). 특수한 권한없이 프로세스를 종료하려면 tskill


정확하게! 하지만 명령 프롬프트에서 배치 파일을 드래그하면 명령 프롬프트가 관리자 권한없이 실행되고 있었습니까?

대단한 트릭입니다. - 그냥 테스트 해 봤는데 .--) 보안 구멍으로 생각해도 될까요?

관련 문제