배치 스크립트를 통해 작업 관리자에서 프로세스를 시작하고 다른 이름을 지정하려면 어떻게 해야 합니까?

배치 스크립트를 통해 작업 관리자에서 프로세스를 시작하고 다른 이름을 지정하려면 어떻게 해야 합니까?

다음과 같은 배치 파일이 있습니다.

cd C:\Some\Folder
wperl SomePerlScript.pl %*
exit 0

이는 기본적으로 perl.exe가 내 데스크탑에 떠다니는 성가신 명령 프롬프트 창을 남겨둔다는 사실을 해결하도록 설계되었습니다. 나는 이 스크립트가 나를 방해하지 않고 백그라운드에서 실행되기를 원합니다.

하지만 이렇게 하면 작업 관리자에 스크립트 이름 대신 "wperl.exe"가 표시됩니다. 프로세스에 사용자 정의 이름을 지정하여 그것이 무엇인지 기억하고 시작할 수 있는 다른 wperl.exe 프로세스와 혼동되지 않도록 할 수 있는 방법이 있습니까?

답변1

wperl은 스크립트에 포함된 명령을 실행하는 프로세스입니다. FreudianSlip의 방법은 작동하지만(명령을 실행하는 실행 파일의 이름을 변경하기 때문에) 이를 처리하는 방법은 해킹적입니다.

당신은 더 나은Perl2Exe

스크립트를 작성하세요. perl2exe로 변환하세요:

perl2exe script.pl

script.exe라는 실행 파일을 얻게 됩니다.

실행 파일을 실행하면 작업 관리자에 script.exe로 표시됩니다.

팝업 창을 피하려면 다음을 사용할 수 있습니다.조용한(perl2exe 프로 버전이 이 작업을 수행하지만 Quiet이 무료인데 왜 추가 비용을 지불합니까?)

배치 파일은 다음과 같이 실행 파일을 호출합니다.

quiet script.exe

이제 작업 관리자에 이름별로 표시되는 자동 실행 버전의 스크립트가 생겼습니다.

답변2

우리는 이것을 약간 지저분하게 만듭니다. 실제로는 wperl.exe의 복사본을 좀 더 명확한 것으로 만듭니다(예: someperlscript.exe).

cd C:\Some\Folder
copy c:\perl\bin\wperl.exe c:\perl\bin\someperlscript.exe
someperlscript.exe SomePerlScript.pl %*
del c:\perl\bin\someperlscript.exe
exit 0

탄력성 등을 위해 약간의 작업이 필요하지만 요점은 알 수 있습니다.

답변3

Start.exe창 제목을 지정하고 프로그램을 시작하는 데 사용할 수 있습니다 . 그럼 다음과 같이 시도해 보세요:

cd C:\Some\Folder
start "My Window Title" /MIN /WAIT wperl SomePerlScript.pl %*
exit 0

그러면 사용자 정의 제목으로 최소화된 상태로 시작됩니다.

또한 배치를 실행할 때 스크립트를 지정하면 인수를 전달하여 스크립트 이름을 제목으로 사용할 수 있습니다.

cd C:\Some\Folder
start %1 /MIN /WAIT wperl %1 %*
exit 0

그런 다음 myBatch.bat SomePerlScript.pl. 그런 다음 제목으로 제공된 스크립트 이름을 사용해야 합니다.

Start.exe당신이 좋아할 만한 다른 편리한 옵션이 있습니다(창을 전혀 생성하지 않으려면 /B, 경로를 지정하려면 /D 등). Start /?자세한 내용을 확인하세요 .


의견에서 OP가 지적했듯이 이는 작업 관리자의 이름에 영향을 미치지 않습니다.

FreudianSlip이 그의 답변에서 지적했듯이 wperl.exe의 이름을 바꾸는 것이 유일한 옵션일 수 있습니다.

그의 아이디어를 확장하면 아마도 다음과 같은 것을 제안하고 싶습니다.

cd C:\Some\Folder
copy c:\perl\bin\wperl.exe c:\perl\bin\%1.exe
%1 %1.pl %*
del c:\perl\bin\%1.exe
exit 0

이렇게 하면 실행하면 동일한 이름의 스크립트를 myBatch.bat SomePerlScript실행하기 전에 인수로 제공된 이름과 일치하도록 wperl.exe의 이름이 변경됩니다 ..pl

관련 정보