PowerShell 出力をテキストファイルにエクスポート
PowerShell は、CLI(コマンドラインインターフェイス)で構成される最も重要なツールの 1つです。これは、自動化機能で使用できるスクリプト言語と、CI / CD 環境で使用できる構成管理フレームワークで構成されています。PowerShell は、Windows、Linux、および macOS オペレーティングシステムをサポートしています。
PowerShell コマンドは、コマンドラインインターフェイスの出力行として標準出力を提供します。PowerShell でいくつかのコマンドを使用して、さまざまな見通しの出力を取得できます。
ほとんどのユーザーの重要な要件の 1つは、PowerShell のコマンドラインインターフェイスから出力を取得することです。これは、出力をテキストファイルに取得することです。この目的を達成するために、特定の PowerShell コマンドを使用できます。
PowerShell で出力をテキストファイルにエクスポートする
最初に、通常は標準出力を提供するコマンドの例を検討します。ここで使用するコマンドは、Compare-Object
です。
Compare-Object
は、PowerShell の基本的なコマンドの 1つであり、ユーザーが 2つのファイルを比較できるようにします。次に、プログラムは 2つのドキュメントで見つかった変更を出力します。
さらに、サイドインジケーター
で一意の行が見つかったファイルを指します。このコマンドは通常、さまざまなバージョンのファイルへの変更を追跡するために使用されます。
比較に使用した 2つの入力ファイルとそのすべての内容を以下に示します。
Compare-Object $(Get-Content .\TestDoc1.txt) $(Get-Content .\TestDoc2.txt)
このコマンドで使用される 2つのファイルには、アルファベット文字のダミーデータがあり、各ファイルで複数の行が一意です。上記のコードの出力は次のようになります。
InputObject SideIndicator
----------- -------------
JJ =>
KK =>
LL =>
MM =>
NN =>
DD <=
EE <=
FF <=
GG <=
私たちのトピックは、上記の出力を外部テキストファイルに取得する方法について説明することです。
それを行うためのいくつかのコマンドがあります。いくつかは最高で最も簡単であると考えられています。
PowerShell で Out-File
コマンドを使用して共通コマンドの出力をテキストファイルにエクスポートする
Out-File
は、PowerShell コマンドの出力をファイルに送信するコマンドです。たとえば、上記で選択したコマンドを次のように使用できます。
Compare-Object $(Get-Content .\TestDoc1.txt) $(Get-Content .\TestDoc2.txt) | Out-File .\TestDoc3.txt
次に、出力は PowerShell コマンドラインインターフェイスに書き込まれませんが、コマンドパスで提供される出力ファイルに直接出力されます。以下の出力は、TestDoc3
に出力されるものです。
InputObject SideIndicator
----------- -------------
JJ =>
KK =>
LL =>
MM =>
NN =>
DD <=
EE <=
FF <=
GG <=
さらに、下の画像は、出力ファイルと同じ出力を示しています。
Start-Transcript
や Stop-Transcript
などの他のオプションを使用できます。これらを使用して、間に実行される各コマンドのスクリプトを作成できます。
コマンドを開始する前に、Start-Transcript
を入力できます。スクリプトを作成するコマンドの最後に、Stop-Transcript
と入力できます。
ただし、スクリプトプロセスは、PowerShell で発生しているすべてのことを記録するため、これはコマンドの出力を別のテキストファイルに取得するための最良のソリューションではありません。
したがって、out-file
が問題のタスクを達成するための最良のソリューションであると結論付けることができます。上記のように、出力は正常に受信されます。
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.