0

コマンド プロンプト (c:\windows\system32\cmd.exe) から Perl スクリプトを実行する場合、スクリプトの実行が終了した後にコマンド プロンプトを終了するにはどうすればよいですか。

Perl スクリプト内で試してみsystem("exit 0")ましたが、Perl スクリプトが実行されている場所から cmd プロンプト シェルを終了しません。

Perlスクリプトでコマンドも試しexit;ましたが、それもうまくいきません。

4

5 に答える 5

5

次のようなコマンド ラインで Perl スクリプトを実行してみてください。

perl script.pl & exit

アンパサンドは、最初のコマンドが終了した後に 2 番目のコマンドを開始します。&&を使用して、最初のコマンドが成功した場合 (エラー コードが 0) にのみ 2 番目のコマンドを実行することもできます。

于 2010-01-12T14:05:33.277 に答える
4

試しましたcmd.exe /C perl yourscript.plか?

に従ってcmd.exe /? /C、文字列で指定されたコマンドを実行し、終了します。

于 2010-01-12T13:54:05.000 に答える
3

START Dos コマンドを使用して、新しいウィンドウでプログラムを開始できます。それを呼び出すと、/B追加のウィンドウは作成されません。次に、EXIT を呼び出して現在のウィンドウを閉じることができます。

それはトリックを行いますか?

于 2010-01-12T13:52:40.003 に答える
3

perl スクリプトを実行するためだけにコマンド シェルを起動している場合は、Arkaitz Jimenez による回答が機能するはずです (私はそれに投票しました)。

runmyscript.batそうでない場合は、次のような内容のバッチ ファイルを作成できます。

@echo off
perl myscript.pl
exit

exitシェル セッションを終了します (副作用として、バッチ スクリプト自体も終了します)。

于 2010-01-12T14:09:01.187 に答える
0

Perl から親シェルにシグナルを送ることができます:

 kill(9,$PARENT_PID);`

残念ながら、このgetppid()関数は Windows 上の Perl には実装されていないため、別の方法で親シェルの PID を見つける必要があります。また、シグナル #9 は最適な選択ではない可能性があります。

于 2010-01-12T13:54:19.610 に答える