
次のようなバッチ ファイルがあります。
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