PowerShellでは、$?
と$LastExitCode
の違いは何ですか?
私はabout automatic variablesを読んで、それは言った:$?
の定義において
$? Contains the execution status of the last operation. It contains TRUE if the last operation succeeded and FALSE if it failed.
$LastExitCode Contains the exit code of the last Windows-based program that was run.
を、それが成功するかを説明し、意味失敗しません。私は$?
は$ LastExitCodeが0である場合にのみ真であることを前提とするので
は、私が聞いて、私は驚くべき反例が見つかりました:$LastExitCode=0 but $?=False in PowerShell. Redirecting stderr to stdout gives NativeCommandErrorを。
ありがとうございました。私は自分で$を考えましたか?ゼロ以外の終了コードを意味しますが、私はちょうど驚くべき反例を見つけました。 http://stackoverflow.com/questions/10666101/powershell-lastexitcode-0-but-false-redirecting-stderr-to-stdout-gives-nat –
これは興味深いものです。私はこれがバグであると信じています(異なるPowerShellホスト間で矛盾して動作するため)。 – Joey
異なるコマンドレット:@iex abcde @は、たとえば$?= Falseまたは$ LastExitCode> 0を返しません – majkinetor