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.exe
Fenstertitel 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.exe
hat 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 SomePerlScript
die Datei wperl.exe so umbenannt, dass sie mit dem als Argument angegebenen Namen übereinstimmt, bevor das .pl
Skript mit demselben Namen ausgeführt wird.