ja-JP/about_Redirection.help.txt
|
TOPIC about_Redirection 簡単な説明 リダイレクトは、コマンドの出力をコンソールではなくファイルなどに 送るしくみです。出力ストリームごとに振り分けることもできます。 (PSHelpJaJP 日本語パッチ版) 詳細な説明 既定では、PowerShell はコマンドの出力を PowerShell ホスト (通常はコンソール) に送ります。リダイレクトを使うと、この出力を テキストファイルなどへ送ることができます。 出力を送る方法は次の 3 つがあります。 1. Out-File コマンドレット Encoding、Force、Width、NoClobber などの特定の パラメーターが必要な場合に適しています。 2. Tee-Object コマンドレット 出力をファイルとパイプラインの両方へ同時に送ります。 3. リダイレクト演算子 直接的な書き方で、機能的には Out-File へのパイプと 同等です。 出力ストリーム PowerShell には番号付きの出力ストリームがあり、それぞれを個別に リダイレクトできます。 番号 ストリーム 生成するコマンドレット 1 Success(成功) Write-Output 2 Error(エラー) Write-Error 3 Warning(警告) Write-Warning 4 Verbose(詳細) Write-Verbose 5 Debug Write-Debug 6 Information Write-Information, Write-Host * すべてのストリーム リダイレクト演算子 > ストリームをファイルへ送る(上書き) >> ストリームをファイルへ追記する >&1 指定したストリームを Success ストリームへ送る 演算子の前に番号を付けると、対象のストリームを指定できます。 コマンド > ファイル Success をファイルへ上書き コマンド 2> ファイル Error をファイルへ上書き コマンド 2>> ファイル Error をファイルへ追記 コマンド 2>&1 Error を Success ストリームへ コマンド *> ファイル すべてのストリームをファイルへ コマンド 3> $null Warning を破棄する 例: # 標準出力をファイルへ Get-Process > processes.txt # エラーだけを別ファイルへ Get-ChildItem nonexist 2> errors.txt # すべての出力を 1 つのファイルへ Get-Process *> all.txt # エラーを成功ストリームに統合してから処理する .\script.ps1 2>&1 | Out-File log.txt 重要な制約: 一部の Unix シェルとは異なり、他のストリームを リダイレクトできる先は Success ストリーム (1) だけです。 注意 リダイレクト演算子 (>、>>) は既定で UTF8NoBOM エンコードを 使用します。別のエンコードが必要な場合は、Out-File の Encoding パラメーターを使ってください。 Get-Process | Out-File -FilePath p.txt -Encoding utf8 表を書き出すときの出力幅はコンソールの幅に基づきます。幅を 固定したい場合は、スクリプトの先頭で次のように設定します。 $PSDefaultParameterValues['Out-File:Width'] = 2000 $null へリダイレクトすると出力を破棄できます。 Stop-Process -Name notepad 2> $null 関連項目 about_Automatic_Variables about_Command_Syntax about_Operators about_Output_Streams Out-File Tee-Object Write-Host ---- 原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP |