Windows のコマンドプロンプトで、画面出力した上で、ログにも出力したい


**Windows のコマンドプロンプトで、画面出力した上で、テキスト形式でログ出力したいのですが、どうすれば良いでしょうか？**

* * *

**例えば、chkdsk**  
・時間がかかる上に、進行状況に応じてメッセージが追加されていきます  
・ログは最後にまとめて出力すれば良いのですが、途中で、誤ってコマンドプロンプトを閉じた時、ログを確認する方法はあるでしょうか？  
・コマンドプロンプトを一旦閉じてしまったら、処理の履歴を確認することは出来ない？

* * *

**今、下記を試しているのですが、どういう意味ですか？**  
・画面には何も表示されていないのですが、処理が全部終了してから「出力する」という意味でしょうか？  
・進行状況に応じてメッセージが追加されていったりはしない？？

> コマンド > ファイル名




Windowsに標準搭載されているPowerShellをつかって、コマンドプロンプトから以下を実行すればいいと思います。

[code]

    powershell -Command "<コマンド> 2>&1 | Add-Content -Path <ファイル名> -PassThru"
    
[/code]

なお、

> 今、下記を試しているのですが、どういう意味ですか？

についてですが、`>`は、コマンドの標準出力(i.e.
エラー以外の画面出力)をファイルに書きこむ、リダイレクトと呼ばれるものです。これをした場合、画面には出力されません。ファイルには進行状況に応じて出力が追加されます。

私の上記コマンドの`2>&1`はコマンドの標準出力にエラー出力をまとめるものです。それをさらに`|`(パイプ)によってPowerShellコマンドレットのAdd-
Contentに渡して処理させています。




Windowsに標準搭載されているPowerShellをつかって、コマンドプロンプトから以下を実行すればいいと思います。

[code]

    powershell -Command "<コマンド> 2>&1 | Add-Content -Path <ファイル名> -PassThru"
    
[/code]

なお、

> 今、下記を試しているのですが、どういう意味ですか？

についてですが、`>`は、コマンドの標準出力(i.e.
エラー以外の画面出力)をファイルに書きこむ、リダイレクトと呼ばれるものです。これをした場合、画面には出力されません。ファイルには進行状況に応じて出力が追加されます。

私の上記コマンドの`2>&1`はコマンドの標準出力にエラー出力をまとめるものです。それをさらに`|`(パイプ)によってPowerShellコマンドレットのAdd-
Contentに渡して処理させています。

