4

完了するまでに時間がかかるため、実行を自動化したいプログラムがあります。何らかの理由で、すべてを stdout ではなく stderr に出力します。進行状況を確認したいので、開始コマンド内で stderr 出力をリダイレクトする必要があることに気付きました。

私はこれを試しました:

start "My_Program" "C:\Users\Me\my_program.exe" --some --presets --for 
--my_program.exe --output "C:\Users\Me\output_file_for_my_program" 
"C:\Users\Me\input_file_for_my_program" 2>"C:\Users\Me\my_program_output.log"

しかし、リダイレクトが開始時に取得されていることが判明したため、結果として 0 バイトのファイルが取得されますstart。つまり、何もありません。出力リダイレクトを何らかの方法で my_program の出力にアタッチする方法はありますか?

私はエスケープを試しましたが、どちら^2>もうまくいかない2^>ようです。どんな助けでも大歓迎です!

4

5 に答える 5

5

/B スイッチを使用します。新しいウィンドウは作成されず、リダイレクトは残りますが、コマンドは必要に応じてバックグラウンドで実行されます。

start /B test.bat >test.txt <nul

test.bat:

@echo off
echo bbb
sleep 10
echo ccc
exit
于 2013-08-13T06:35:16.607 に答える
5

これを試して:

start "My_Program" "%SystemRoot%\System32\cmd.exe" /c ""C:\Users\Me\my_program.exe" --some --presets --for --my_program.exe --output "C:\Users\Me\output_file_for_my_program" "C:\Users\Me\input_file_for_my_program" 2>"C:\Users\Me\my_program_output.log""

明らかに、ここに「マイ プログラム」がなければ、これ自体をテストすることはできません。組み込みの「FIND.EXE」コマンドがSTDERRで「ファイルが見つかりません-ファイル名」を返すと仮定すると、次のように機能します。

start "My_Program" "%SystemRoot%\System32\cmd.exe" /c "find /v /i "blarg" "c:\not a real file.txt" 2> C:\stderr.txt"
于 2009-08-21T02:46:27.273 に答える
2

次のコマンドを使用しましたが、機能しました。

start / affinity 2 / wait cmd.exe / C myprog.exe parameter1 parameter21^>。\a.log2>>。\b.log

Ref: http://www.pcreview.co.uk/forums/redirect-standard-output-w-start-command-t1467634.html

Abhishek

于 2012-09-03T15:56:31.403 に答える
2

コマンドの呼び出しをリダイレクトと共にバッチ ファイルに入れ、バッチ ファイルで start を使用するのはどうですか?

于 2009-08-20T21:08:02.713 に答える