Perl スクリプトを実行しようとすると、正常に実行されます。後でこのコマンドを実行するecho %errorlevel%
と、出力が 1 になります。なぜですか?
1511 次
2 に答える
5
Perl がエラーレベル 1 で返された場合、どちらかexit(1)
が呼び出されました
>perl -e"exit 1"
>echo %errorlevel%
1
またはハンドラーで$?
に設定され1
ましたEND
>perl -e"END { $? = 1; }"
>echo %errorlevel%
1
またはプログラムが死亡した$!
とき1
>perl -e"$!=1; die;"
Died at -e line 1.
>echo %errorlevel%
1
(これは多くの場合、システム コールが「操作が許可されていません」で失敗したことを示します)
>perl -E"say $!=1"
Operation not permitted
または isとwasのとき$!
にプログラムが終了しました。0
$?
(1 << 8)
>perl -e"$!=0; $?=1<<8; die;"
Died at -e line 1.
>echo %errorlevel%
1
他の状況 (ロード自体の問題など) でperl
終了することは可能だと思いますが、そのような状況は知りません。1
perl
于 2012-07-20T05:34:10.513 に答える
1
注意すべき点として、%ERRORLEVEL% をすぐに調査する必要があります。バッチ スクリプトのすべてのステップでエラー レベルが設定または変更されるため、エラー レベルが維持されることを期待しても、エラー レベルは維持されません。たとえば、スクリプトを実行し、別のコマンド (dir、または echo など) を実行してからエラーレベルを確認すると、スクリプト自体ではなく、スクリプトの後のコマンドになります。
于 2012-07-20T11:29:43.753 に答える