2

У меня есть командный файл, который выглядит следующим образом:

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

Он в основном разработан для того, чтобы обойти тот факт, что perl.exe оставляет раздражающее окно командной строки, плавающее на моем рабочем столе; Я хочу, чтобы этот скрипт работал в фоновом режиме, не мешая мне.

Но когда я делаю это, в диспетчере задач вместо имени скрипта появляется «wperl.exe». Есть ли способ присвоить процессу собственное имя, чтобы я мог запомнить, что это такое, и не допустить путаницы с другими процессами wperl.exe, которые я мог бы запустить?

3 ответа3

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

Нужна небольшая работа для устойчивости и т.д., Но вы получите суть.

2

Вы можете использовать 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 вообще не создавать окна, ot /D указывать путь и т.д.). Проверить Start /? для получения дополнительной информации.


Как было отмечено в комментариях ОП, это не влияет на имя в диспетчере задач.

Как указывает 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 с тем же именем.

1

wperl - это процесс, выполняющий инструкции, содержащиеся в скрипте. Хотя метод FreudianSlip будет работать (только потому, что вы меняете имя исполняемого файла, выполняющего инструкции), это хакерский способ справиться с этим.

Вам лучше с Perl2Exe

Напиши свой сценарий. преобразовать его с perl2exe:

perl2exe script.pl

Вы получите исполняемый файл с именем script.exe

запустите исполняемый файл, и он будет отображаться как script.exe в диспетчере задач.

Чтобы избежать появления всплывающего окна, вы можете использовать Quiet (обратите внимание, что профессиональная версия perl2exe сделает это, но зачем платить за дополнительную плату, когда Quiet бесплатен?)

Ваш командный файл будет называть ваш исполняемый файл так:

quiet script.exe

Теперь у вас есть тихая запущенная версия вашего скрипта, которая отображается в диспетчере задач по имени.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .