もしPowerShellのコマンドレットで、出力をテキストファイルに保存する方法をお探しであれば、運が良いですね。PowerShellのOut-File
コマンドレットと、その人気のあるOut-File -Append
パラメータの使い方を学ぶことになります!
Out-Fileの動作はどのようになっていますか?
このPowerShellのコマンドレットは単純で、その唯一の目的は受信した出力を保存してテキストファイルに保存することです。
標準出力リダイレクト演算子(>
)を置き換えるために設計されました。 DOS時代から、出力をファイルにリダイレクトすることができました。このコマンドレットはそれを行うPowerShellの方法です。
通常、Out-File
コマンドレットはPowerShellパイプラインの最後に使用されます。その唯一の目的は生の出力を直接テキストファイルに送信することです。出力が書き込まれる方法を微調整する方法はほとんどありません。
ファイルへの出力の送信
コンピューター上のすべてのWindowsサービスのリストを返すスクリプトがあるとします。 Get-Service
を実行すると、コンソールで予想されるすべてのオブジェクトが返されます。
しかし、その出力をテキストファイルに保存したい場合があるかもしれません。 Out-File
コマンドレットはそれを行う素晴らしい方法です。パイプラインを介してほとんど何でもそれに渡して使用することができます。
以下に、Get-Service
の出力が送られ、その出力を含むServices.txtという名前のテキストファイルが作成されました。このファイルには、コンソールで表示されているものとまったく同じ表示が含まれています。
ファイルへの追加
デフォルトでは、FilePath
パラメーターで指定されたテキストファイル内のすべてを上書きします。しかし、Append
パラメーターを使用することで、この動作をオーバーライドすることができます。
もしかしたら、コンソール出力をファイルに蓄積し、上書きするのではなくファイルにテキストを追加したい場合があります。その場合は、Append
パラメーターが役立ちます。
Out-File -Append
パラメーターを使用すると、以下のようになります。Append
パラメーターを使用しないと、C:\File.txtが上書きされることに注意してください。しかし、Append
パラメーターを追加すると、出力が末尾に追加されます。
出力の変更
デフォルトでは、このコマンドレットはコンソールに表示される内容を再現しようとしますが、操作する方法もあります。たとえば、コマンドレットにはNoNewLine
パラメーターがあり、すべての改行文字を単に削除します。
あるいは、Width
パラメーターを使用して、各行のテキストを特定の文字数で切り取ることもできます。
結論

現実のシナリオでは、このコマンドレットは動作しますが、出力をファイルに保存するためのより良い方法があります。
このコマンドレットは、出力を操作するための実質的なオプションを提供しません。単に、コンソールに表示されている内容をそのまま出力します。このコマンドレットは、すべてを直接テキストファイルに書き込むPowerShellトランスクリプトと似ています。
Add-Content
またはSet-Content
コマンドレットは常に柔軟性がありますが、PowerShellの出力をファイルにすばやく取得する必要がある場合は、Out-File
が適しています。