質問の内容。
最終的に私が欲しいのは、gccを実行し、エラーが発生した場合に出力をキャプチャすることです。問題は、エラーがstdoutではなくstderrに書き込まれることです。Linuxでは私はできる
gcc foo.c 2>&1
Windowsでこれをどのように達成できますか?
質問の内容。
最終的に私が欲しいのは、gccを実行し、エラーが発生した場合に出力をキャプチャすることです。問題は、エラーがstdoutではなくstderrに書き込まれることです。Linuxでは私はできる
gcc foo.c 2>&1
Windowsでこれをどのように達成できますか?
がある。コンソールウィンドウを右クリックして、を選択しますMark
。マウスで目的の領域を選択して右クリックします。これで、Ctrl-Vを使用してテキストファイルに貼り付けることができます。
プログラムをテキストファイルに出力する必要がある場合は、次のように実行します。
myprogram.exe > myfile.txt
リダイレクトについては、こちらを参照してください
。1.コマンドリダイレクト演算子の使用
2.コマンドプロンプトからのエラーメッセージのリダイレクト:STDERR / STDOUT
あなたはこのようにあなたがやりたいことをすることができます:D:\>dir 1> test.txt 2> testerr.txt
リチャード、あなたの「受け入れられた答え」は長すぎて間違っています。
あなたの質問に対する簡単な答え(あなたの最後の文で現在述べられているように:「どうすればこれをWindowsで達成できますか?」)は次のとおりです。
しかし、私はあなたにも長い答えを与えます。
リダイレクト2>&1
はcmd.exe
ウィンドウ内でも同じように機能します。cmd.exeのエクスペリエンスが少し錆びているので、今すぐ再テストしました。私はこのGhostscriptコマンドを使用しました(意図的にstdoutとstderrで出力を生成することを目的としています):
gswin32c -sDEVICE=nullpage -dFirstPage=12 -dLastPage=11 my-20-page-test.pdf
期待されるすべての出力をシェルウィンドウに取得しました。それから私はしました:
gswin32c -sDEVICE=nullpage -dFirstPage=12 -dLastPage=11 my-20-page-test.pdf ^
1>stdout.log
stderrはまだウィンドウに出力されますが、stdout.logには「欠落している」元の出力がありました。次に私がした:
gswin32c -sDEVICE=nullpage -dFirstPage=12 -dLastPage=11 my-20-page-test.pdf ^
2>stderr.log
stdoutがウィンドウに出力されるようになりましたが、stderr.logにはGhostscriptの残りのメッセージが含まれていました。次:
gswin32c -sDEVICE=nullpage -dFirstPage=12 -dLastPage=11 my-20-page-test.pdf ^
1>stdout.log 2>stderr.log
および(予想どおり):ウィンドウに出力がなく、すべての出力がstdout.logとstderr.logに分割されます。最後のテスト:
gswin32c -sDEVICE=nullpage -dFirstPage=12 -dLastPage=11 my-20-page-test.pdf ^
1>all.log 2>&1
そして今の結果:
これは、Linuxの場合のstderr/stdoutリダイレクトと同じ動作です。
特定のコマンドの出力が必要な場合は、コンソール出力をファイルにプッシュする簡単な方法があります。
'dir'コマンドを使用した簡単な例を次に示します(先頭の>はプロンプトを表します)。
>dir > diroutput.txt