PowerShell
実行可能ファイルの実行
サーチ…
コンソールアプリケーション
PS> console_app.exe
PS> & console_app.exe
PS> Start-Process console_app.exe
GUIアプリケーション
PS> gui_app.exe (1)
PS> & gui_app.exe (2)
PS> & gui_app.exe | Out-Null (3)
PS> Start-Process gui_app.exe (4)
PS> Start-Process gui_app.exe -Wait (5)
GUIアプリケーションは別のプロセスで起動し、すぐにPowerShellホストに制御を戻します。場合によっては、次のPowerShellステートメントを実行する前に処理を終了するアプリケーションが必要になることがあります。これは、アプリケーション出力を$ null(3)にパイプするか、-Waitスイッチ(5)でStart-Processを使用することで実現できます。
コンソールストリーム
PS> $ErrorActionPreference = "Continue" (1)
PS> & console_app.exe *>&1 | % { $_ } (2)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.ErrorRecord] } (3)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.WarningRecord] } (4)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.VerboseRecord] } (5)
PS> & console_app.exe *>&1 (6)
PS> & console_app.exe 2>&1 (7)
ストリーム2には、System.Management.Automation.ErrorRecordオブジェクトが含まれています。 git.exeのようなアプリケーションの中には、情報の目的で「エラーストリーム」を使用しているものがありますが、必ずしもエラーではありません。この場合、終了コードを調べて、エラーストリームをエラーとして解釈する必要があるかどうかを判断するのが最善です。
PowerShellは、出力、エラー、警告、冗長、デバッグ、進捗の各ストリームを認識します。ネイティブアプリケーションでは、一般に次のストリームのみを使用します。出力、エラー、警告。
PowerShell 5では、すべてのストリームを標準出力/成功ストリーム(6)にリダイレクトできます。
以前のPowerShellバージョンでは、特定のストリームのみを標準出力/成功ストリーム(7)にリダイレクトできます。この例では、「エラーストリーム」が出力ストリームにリダイレクトされます。
終了コード
PS> $LastExitCode
PS> $?
PS> $Error[0]
これらは、PowerShellの組み込み変数で、最新のエラーに関する追加情報を提供します。 $LastExitCode
は、実行された最後のネイティブアプリケーションの最終的な終了コードです。 $?
$Error[0]
はPowerShellによって生成された最後のエラーレコードです。