私は、さまざまな形式の出力を生成するスクリプトを持っています - 主に標準出力とエラーチャネルです。Powershell 2:出力のすべてのビットをファイルに転送する簡単な方法はありますか?
script.ps1 > $somefile 2>&1
script.ps1 | tee-object <args>
script.ps1 | out-file <args>
私も試したスタート転写/ストップ・トランスクリプト:
私はのようなものを試してみました。これらの方法論には欠点があります。
UNIXスタイルの呼び出しの最も近いPowerShellの同等とは何か:
myScript.ps1 > $somefile 2>&1
私はPowerShellで上記のコマンドをしようとすると、私は「出力」と呼ばれ、コンソール上のすべての出力、および長さ0のファイルを参照してください後ろに残る。何がありますか?
EDIT:私の問題のほとんどは、私がWrite-Hostを使用しているという事実にあります。これは私が標準出力ストリームをバイパスしていると思います。しかし、Write-HostステートメントをWrite-Outputに切り替えると、すべての関数の戻り値が破壊されたり、スクリプトが別の方法で大きく歪んだりすることになります。
すべての出力とエラーを同じファイルに確実に取り込めるように、Write-Hostエントリを処理する際の最も賢明なオプションは何ですか?また、Write-Hostからの色付け機能を使用しています...ログファイルにダンプすることを考えているなら、それをあきらめる必要があります。
さらに、Write-Hostなどを使用するかどうかを制御するコマンドライン引数、「-console」を設定することは可能ですか?私のスクリプトは、最初は手作業でインタラクティブに何十回も実行されています。その後、すべての出力/エラーのログが必要となる年に1回、毎日1時間ずつ実行されます。
を行うことができ、私はあなたが正しいと思います。私がこれを投稿してからあなたが返答した時から、私が思い付くことができる最高のものは、開始 - 転写物と停止転写物です。あなたのアイデアをありがとう! – Larold
PowerShellスクリプトでのログ記録で良好な結果を示し、transcriptコマンドレットを使用したときの問題を示しています。 http://blog.magenic.com/blogs/daniels/archive/2008/07/12/_2200_Logging_2200_-Script-Output-in-Powershell.aspx –