[ホーム] > [間違えやすい類語 IT編一覧] > [Powershellでファイル出力する3種類の比較(Try,Transcript,リダイレクト)]
このページではPowershell における結果のファイル出力方法の違いに関して説明します。バッチファイルで使われるリダイレクトはあまり使われないようです。
(注意)分かりやすく簡単に記載しており、一部の環境や分野では記載内容が異なる可能性があります。あくまでも参考程度でお読みください。
説明 | Try 〜 Catch | Start-Transcript〜Stop-Transcript | リダイレクト |
概要 | Try 内でエラーが発生した場合に Catch の処理が実行される。その場合にエラーの内容をファイルに記録することが可能となる。 | 開始から終了の間の処理を記録する。環境及び出力やエラーの内容が記録される。 | 古くはUNIX系のシェルで使用されている方式です。Windows のバッチファイルでも採用されています。ただしPowershellではあまり使われないようです。 |
標準出力 | ×(出力されない) | 〇(出力される) | 〇(出力される) |
エラー出力 | 〇(出力される) | 〇(出力される) | ×(出力されない。例外が発生する。) |
例 | $ErrorActionPreference = "Stop" Try{ write-output "test" $a = 1 / 0 } Catch { $error[0] | Out-String | Out-File C:\temp2\output.txt } test | Start-Transcript C:\temp2\output.txt write-output "test" $a = 1 / 0 Stop-Transcript test 0 で除算しようとしました。 発生場所 C:\temp3\abc.ps1:4 文字:1 + $a = 1 / 0 + ~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : RuntimeException | write-output "test" > C:\temp2\output.txt $a=1/0 2> C:\temp2\err.txt 0 で除算しようとしました。 発生場所 C:\temp3\abc.ps1:2 文字:1 + $a=1/0 2> C:\temp2\err.txt + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], RuntimeException + FullyQualifiedErrorId : RuntimeException |
C:\temp2\output.txtの内容 | 0 で除算しようとしました。 発生場所 C:\temp3\abc.ps1:5 文字:2 + $a = 1 / 0 + ~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], RuntimeException + FullyQualifiedErrorId : RuntimeException | ********************** Windows PowerShell トランスクリプト開始 開始時刻: 20190318001134 ユーザー名: PCNAME\username RunAs ユーザー: PCNAME\username 構成名: <中略> SerializationVersion: 1.1.0.1 ********************** test PS>終了エラー(): "0 で除算しようとしました。" 0 で除算しようとしました。 発生場所 C:\temp3\abc.ps1:4 文字:1 + $a = 1 / 0 + ~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : RuntimeException | test (*) C:\temp2\err.txt は出力なし |
注意 | - | - | write-host はファイルへ直接書き出すためリダイレクトはできません。 |
関連リンク:
【最大メリットとは】Powershell と コマンドプロンプトの違いを比較表で説明
netsh、wmic、powershell、コマンドプロンプトの違い
Powershell実行方法の違い | インタプリタ、スクリプトファイル、コマンドプロンプトから実行
[ホーム] > [間違えやすい類語 IT編一覧]
,