WindowsコマンドやPowerShellの実行結果をファイルに出力する方法

WindowsコマンドやPowerShellの実行結果をファイルに出力する方法

WindowsのコマンドプロンプトやPowerShellでコマンドを実行した場合、通常、コマンドの実行結果やエラーは画面上に表示されます。

ですが、バッチファイルやスクリプトファイルとしてコマンドを実行するようなケースでは、コマンドの実行結果やエラーをファイルに出力して記録しておきたいときがあります。

そこでここでは、WindowsコマンドやPowerShellの実行結果やエラーをファイルに出力する方法を紹介します。

Windows10でコマンドを使ってクリップボードの内容を受け渡す方法
ここでは、Windows10でclipコマンドやSet-Clipboard/Get-Clipboardコマンドレットを使って、クリップボードにデータをコピーしたり、クリップボードからデータを取得する方法を紹介します。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows10 Pro 64bit21H2

ファイルに出力する

コマンドプロンプトの場合

コマンドプロンプトでWindowsコマンドの実行結果やエラーをファイルに出力するには、リダイレクトを利用します。

たとえば、systeminfoコマンドをそのまま実行すると、以下の画像のようにさまざまな情報が画面に出力され、そのままでは内容を確認しづらいでしょう。

WindowsコマンドやPowerShellの実行結果をファイルに出力する方法

そのようなときは、リダイレクトを利用してコマンドを実行することで、実行結果をテキストファイルとして出力でき、後から内容を確認したり検索しやすくなります。

たとえば、以下のコマンドでは、コマンドの実行結果を「D:\result.txt」に出力しています。

C:\> systeminfo > D:\result.txt

WindowsコマンドやPowerShellの実行結果をファイルに出力する方法

リダイレクトでファイルに出力する方法としては、次のような種類があります。

コマンド説明
コマンド > ファイルコマンドの実行結果をファイルに出力する
コマンド >> ファイルコマンドの実行結果をファイルに追記する
コマンド 2> ファイルコマンドのエラーをファイルに出力する
コマンド 2>> ファイルコマンドのエラーをファイルに追記する
コマンド > ファイル 2>&1コマンドの実行結果とエラーをファイルに出力する
コマンド >> ファイル 2>&1コマンドの実行結果とエラーをファイルに追記する

なお、Windowsコマンドの実行結果をリダイレクトでファイルに出力する場合は、実行するコマンドによって、文字コードが「ANSI(Shift_JIS)」で出力される場合と「UTF-16 LE」で出力される場合があるので注意が必要です。

PowerShellの場合

PowerShellコマンドレットの実行結果をファイルに出力するときは、Windowsコマンドと同じようにリダイレクトを使った方法に加えて、Out-Fileコマンドレット使った方法があります。

たとえば、以下のコマンドでは、ipconfigコマンドの実行結果を「D:\result.txt」に出力しています。

PS C:\> ipconfig | Out-File -FilePath D:\result.txt

WindowsコマンドやPowerShellの実行結果をファイルに出力する方法

なお、Out-Fileコマンドレットで出力されるテキストファイルの文字コードは、デフォルトでは「UTF-16 LE」ですが、「ANSI(Shift_JIS)」で出力したいときは、以下のように実行します。

PS C:\> ipconfig | Out-File -FilePath D:\result.txt -Encoding default

WindowsコマンドやPowerShellの実行結果をファイルに出力する方法

あとがき

WindowsコマンドやPowerShellコマンドレットを、バッチファイルやスクリプトファイルで実行する場合は、実行結果をファイルに出力することで、正常に実行されたかなどを確認できて便利ですよ。

ご活用あれ。

記事が役立ったらシェアしてくれるとうれしいです。