web-dev-qa-db-ja.com

PowerShellでテキストファイルに出力を書き込む

次のコードを使用して2つのファイルを比較しました。

Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt) 

この出力を新しいテキストファイルに書き込むにはどうすればよいですか? echoコマンドを使用してみましたが、構文が実際には理解できません。

50
bookthief

Out-Fileコマンドレットを使用する

 Compare-Object ... | Out-File C:\filename.txt

オプションで、-Encoding utf8Out-Fileに追加します。これは、デフォルトのエンコードが多くの用途にとって実際には理想的ではないためです。

85
manojlds

最も簡単な方法は、出力を次のようにリダイレクトすることです。

Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt) > c:\user\documents\diff_output.txt

>を使用すると、出力ファイルが既に存在する場合は上書きされます。
>>は、出力テキストが既に存在する場合、出力ファイルの最後に新しいテキストを追加します。

18
Matt

これを実現する別の方法は、コマンド実行の前後にStart-TranscriptおよびStop-Transcriptコマンドを使用することです。これにより、コマンドを含むセッション全体がキャプチャされます。

開始トランスクリプト

ストップトランスクリプト

この特定のケースでは、おそらくOut-Fileが最善の策です。

3
Aaron Krone