私はWindowsでCプログラムを書いています、私のprintfはコマンドラインにprintを呼び出します。
myProgram.exe > mylog.txt
ただし、コンソールに出力される出力を確認し、すべてをテキストファイルに記録したいと考えています。
これを行う方法はありますか?ログファイルを監視するためにtailを使用することを考えていました。
私はWindowsでCプログラムを書いています、私のprintfはコマンドラインにprintを呼び出します。
myProgram.exe > mylog.txt
ただし、コンソールに出力される出力を確認し、すべてをテキストファイルに記録したいと考えています。
これを行う方法はありますか?ログファイルを監視するためにtailを使用することを考えていました。
回答:
Windows PowerShellには、それを実行できるtee
ツールがあり、同じことを行うUNIXツールにちなんで名付けられました。
または、tee
Windows用のUNIXのポートがあります。
Windowsでは、これを行うことしか考えられません。
myProgram.exe > mylog.txt & type mylog.txt
これはあなたの質問のコマンド例に基づいています-実際に出力を追加しmylog.txt
たい場合>>
は>
、の代わりに使用したいが、type
追加されたものだけでなくログファイル全体を印刷します。
GnuWin32 CoreUtilsをダウンロードすると、これを行うためにUnixメソッド(tee
コマンド)を使用できます。
myProgram.exe | tee mylog.txt
これにより、myProgram.exeの出力が書き込まれますmylog.txt
が、同時にコンソールにも表示されます。追加するだけの場合はmylog.txt
、-a
パラメータをteeに渡すことができます。
Visual Studio Codeを使用し、そこからログファイルを開きます。ログファイルが変更されると、ほぼリアルタイムでビューを最新の状態に保ちます
私は同様のニーズがあり、OPが示唆したようにTailを使用しました:
>C:\Temp\Commands_Log.txt (
START tail.exe -f C:\Temp\Commands_Log.txt
Some_Commands
Other_Commands
echo.
echo ALL DONE HERE!
echo.
echo IT IS NOW SAFE TO CLOSE THIS WINDOW!
)
"> C:\ Temp \ Commands_Log.txt"はログファイルを作成し、(括弧)内にあるすべてのコマンドからの出力を追加します。
括弧内の最初のコマンドは、新しいコマンドウィンドウで開くTailを起動することです。
最後のエコーは、なじみのないユーザーがすべてが完了したことを知らせるためのものです。