一連の scala スクリプトを実行する Powershell スクリプトを作成しています (ビルド ツールを使用しない理由があります)。これらすべてのコンパイルの出力を次のように生成したいと思います。
- ファイル内のコンパイル エラーのみ
- 2 番目のファイルに結合されたコンパイル エラーと標準出力
- 標準出力とコンパイル エラーも標準出力に出力されます
私はtee、2>>を試し、さらに-OutVariableと-ErrorVariableを突き刺しました (後者の 2 つはネイティブの Powershell コマンドでのみ機能するようです?)。ティーとリダイレクトはいくつかの組み合わせで正しいアプローチだと思いますが、かなりの検索を行った後、適切なフォーラムが見つからないようです。
エラーをリダイレクトするだけの現在のメインループは次のとおりです。
foreach($script in $scripts) {
Write-Host scala $script
scala -nocompdaemon $script 2>> _testerrors.txt
}
最初の行は、プロセスを見ている人が何かが起こっていることを確認できるようにするためのものです (適切なティーイング/リダイレクトなどにより、副作用としてこれが解消されるようです)。
ヘルプ/ポインタをありがとう; 私は Powershell のカジュアルなユーザーです。
アップデート:
さらに探し回った結果、次の結果が得られました。
foreach($script in $scripts) {
Write-Host scala $script
Write-Output "> scala $script" | Out-File ./_testoutput.txt -append
scala -nocompdaemon $script 2>&1 | tee -Variable testout
out-file ./_testoutput.txt -InputObject $testout -append
Write-Output "--------------------" | Out-File ./_testoutput.txt -append
}
teeコマンドはテキストをファイルに送信できることがわかりましたが、何らかの奇妙な理由でファイルに追加できません。したがって、出力を変数にキャプチャしてから、変数をファイルに追加する必要があります。
この結果によって問題の一部は解決されますが、それでもエラー メッセージのみを含むファイルは生成されません。