2

たとえば、バッチ ファイルでmyCommandを非同期に (終了するのを待たずに)実行したいとします。また、新しいコンソール ウィンドウでmyCommandを実行したくありません。

同時に、myCommand の出力をoutput.txtにリダイレクトしたい

バッチファイルで、私が書くと

START myCommand > output.txt

output.txt が空になり、新しいウィンドウが表示されます。

私が書いたら

myCommand > output.txt

その後、非同期で実行できません。

これら 3 つの要件をすべて達成する方法はありますか? (非同期、新しいウィンドウなし、出力のリダイレクト)

ありがとう!

4

2 に答える 2

4

完全にはテストしていませんが、これでうまくいくと思います:

start /b "" myCommand >output.txt

どちらの形式も問題なく動作すると思います。唯一の違いは、標準エラーもリダイレクトされ、START が myCommand の起動に失敗した場合です。

START のリダイレクト: myCommand と START の両方の出力がファイルにリダイレクトされます。

start /b "" myCommand >output.txt >2&1

myCommand のみのリダイレクト: myCommand の出力のみがリダイレクトされます。START エラー メッセージが画面に表示されます。jeb のような引用符を使用する代わりに、リダイレクトをエスケープすることを選択したことに注意してください。

start /b "" myCommand ^>output.txt ^>2^&1
于 2013-01-26T06:59:17.630 に答える
1

dbenhams の回答とほぼ同じですが、startコマンドではなく、新しいスレッドへのリダイレクトを強制する必要があります。

start "myTitle" "myCommand > output.txt"
于 2013-01-26T09:07:27.033 に答える