¿Cómo puedo iniciar un proceso y darle un nombre diferente en el Administrador de tareas mediante un script por lotes?

¿Cómo puedo iniciar un proceso y darle un nombre diferente en el Administrador de tareas mediante un script por lotes?

Tengo un archivo por lotes que se parece a este:

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

Básicamente está diseñado para solucionar el hecho de que perl.exe deja una molesta ventana de símbolo del sistema flotando en mi escritorio; Quiero que este script se ejecute en segundo plano sin molestarme.

Pero cuando hago esto, en el Administrador de tareas, veo "wperl.exe", en lugar del nombre del script. ¿Hay alguna forma de darle al proceso un nombre personalizado, para poder recordar qué es y evitar que se confunda con otros procesos wperl.exe que pueda iniciar?

Respuesta1

wperl es el proceso que ejecuta las instrucciones contenidas en el script. Si bien el método de Freudianslip funcionará (solo porque cambia el nombre del ejecutable que ejecuta las instrucciones), es una forma ingeniosa de manejarlo.

Estás mejor conPerl2Exe

Escribe tu guión. conviértelo con perl2exe:

perl2exe script.pl

Obtendrá un archivo ejecutable llamado script.exe

Ejecute el ejecutable y aparecerá como script.exe en el administrador de tareas.

Para evitar la ventana que aparece, puedes usarTranquilo(tenga en cuenta que la versión pro de perl2exe hará esto, pero ¿por qué pagar el costo adicional cuando Quiet es gratis?)

Su archivo por lotes llamaría a su ejecutable así:

quiet script.exe

Ahora tiene una versión de ejecución silenciosa de su script que aparece en el administrador de tareas por su nombre.

Respuesta2

Hacemos esto un poco sucio... en realidad hacemos una copia de wperl.exe en algo más obvio, es decir, 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

Necesita un poco de trabajo para la resiliencia, etc., pero entiendes la esencia.

Respuesta3

Puede utilizarlo Start.exepara especificar títulos de ventanas e iniciar programas. Entonces tal vez intente algo como:

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

Eso debería iniciarlo minimizado con su título personalizado.

Además de eso, si especifica el script cuando ejecuta el lote, puede usar su nombre como título pasando un argumento. Algo como:

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

Luego ejecútelo con myBatch.bat SomePerlScript.pl. Luego debería usar cualquier nombre de script proporcionado como título.

Start.exetiene otras opciones útiles que le pueden gustar (/B para no crear ninguna ventana, o /D para especificar la ruta, etc.). Consulte Start /?para obtener más información.


Como señaló el OP en los comentarios, esto no afecta el nombre en el Administrador de tareas.

Como señala Freudianslip en su respuesta, cambiar el nombre de wperl.exe puede ser la única opción.

Ampliando su idea, sugeriría quizás algo como:

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

De esa manera, si lo ejecuta, myBatch.bat SomePerlScriptcambiará el nombre de wperl.exe para que coincida con el nombre proporcionado como argumento antes de ejecutar el .plscript con el mismo nombre.

información relacionada