Wie kann ich einen Prozess starten und ihm im Task-Manager über ein Batch-Skript einen anderen Namen geben?

Wie kann ich einen Prozess starten und ihm im Task-Manager über ein Batch-Skript einen anderen Namen geben?

Ich habe eine Batchdatei, die so aussieht:

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

Es ist im Grunde darauf ausgelegt, den Umstand zu umgehen, dass perl.exe ein störendes Eingabeaufforderungsfenster auf meinem Desktop hinterlässt. Ich möchte, dass dieses Skript im Hintergrund ausgeführt wird, ohne mich zu stören.

Aber wenn ich das mache, sehe ich im Task-Manager „wperl.exe“ statt des Namens des Skripts. Gibt es eine Möglichkeit, dem Prozess einen benutzerdefinierten Namen zu geben, damit ich ihn mir merken kann und er nicht mit anderen wperl.exe-Prozessen verwechselt wird, die ich möglicherweise starte?

Antwort1

wperl ist der Prozess, der die im Skript enthaltenen Anweisungen ausführt. Obwohl die Methode von FreudianSlip funktioniert (nur weil Sie den Namen der ausführbaren Datei ändern, die die Anweisungen ausführt), handelt es sich dabei um eine Hack-Methode.

Besser geht es mitPerl2Exe

Schreiben Sie Ihr Skript. Konvertieren Sie es mit perl2exe:

perl2exe script.pl

Sie erhalten eine ausführbare Datei namens script.exe

Führen Sie die ausführbare Datei aus und sie wird im Task-Manager als script.exe angezeigt.

Um das Fenster zu vermeiden, das angezeigt wird, können Sie verwendenRuhig(Beachten Sie, dass dies mit der Pro-Version von perl2exe möglich ist, aber warum sollten Sie die zusätzlichen Kosten bezahlen, wenn Quiet kostenlos ist?)

Ihre Batchdatei würde Ihre ausführbare Datei folgendermaßen aufrufen:

quiet script.exe

Sie verfügen jetzt über eine im Hintergrund ausgeführte Version Ihres Skripts, die mit Namen im Task-Manager angezeigt wird.

Antwort2

Wir gehen dabei ein wenig unsauber vor ... wir erstellen tatsächlich eine Kopie von wperl.exe in etwas Offensichtlicheres – also 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

Es muss noch ein wenig an der Belastbarkeit usw. gearbeitet werden, aber Sie verstehen, worum es geht.

Antwort3

Sie können Start.exeFenstertitel festlegen und Programme starten. Versuchen Sie es vielleicht mit etwas wie:

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

Dadurch sollte es minimiert mit Ihrem benutzerdefinierten Titel starten.

Wenn Sie außerdem beim Ausführen des Batches das Skript angeben, können Sie seinen Namen als Titel verwenden, indem Sie ein Argument übergeben. Etwa so:

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

Führen Sie es dann mit aus myBatch.bat SomePerlScript.pl. Es sollte dann den angegebenen Skriptnamen als Titel verwenden.

Start.exehat einige andere praktische Optionen, die Ihnen vielleicht gefallen (/B, um überhaupt kein Fenster zu erstellen, oder /D, um den Pfad anzugeben usw.). Start /?Weitere Informationen finden Sie unter.


Wie der OP in den Kommentaren anmerkte, hat dies keine Auswirkungen auf den Namen im Task-Manager.

Wie FreudianSlip in seiner Antwort anmerkt, ist das Umbenennen von wperl.exe möglicherweise die einzige Option.

Ich würde seine Idee weiter ausführen und vielleicht etwas wie Folgendes vorschlagen:

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

Auf diese Weise wird beim Ausführen myBatch.bat SomePerlScriptdie Datei wperl.exe so umbenannt, dass sie mit dem als Argument angegebenen Namen übereinstimmt, bevor das .plSkript mit demselben Namen ausgeführt wird.

verwandte Informationen