もともと私はこのようなコマンドを持っていました(Linuxの場合)
daemon flag & app flag
しかし、Windowsではbcデーモンは終了せず、アプリは起動しません。そこで代わりにこれを書きました
start /B daemon flag & app flag
これは動作するようです。今、実行したいのですdaemon flag | app2 flags
が、私が開始するすべての操作で、デーモンが存在しないなどの問題が報告されます。 を入力するdaemon flag | app2 flags
とfile.bat
、start /B file.bat
代わりに希望どおりに動作するようです。しかし、それはハックっぽい感じがします。
daemon flag | app2 flags
バックグラウンドですぐに実行するにはどうすればよいですかapp flag
? file.bat の回避策が唯一の選択肢ですか?
答え1
次のようにすれば望みどおりになると思います:
start /B %comspec% /c "daemon flag | app2 flags" & app flag
これにより、バックグラウンドで実行され、パイプを処理する新しいシェルが生成されますcmd
。これは、バッチ ファイルの使用start
と同等の Linux コマンドの両方によって暗黙的に実行されます。
app2
と の両方が出力を生成する場合は当然混乱が生じますがapp
、両方がコンソール入力を要求する場合はさらに混乱が生じます (Linux と Windows でも同様です)。