Windows シェルの (foo &>/dev/null &) に相当

Windows シェルの (foo &>/dev/null &) に相当

特定のアプリケーション ( と呼びますfoo) をコマンド ラインから実行したいのですが、ターミナルを待機させたり、出力やエラー ストリームからターミナルにジャンクを送信したりしたくないですし、ターミナルを閉じても実行し続けたいです。Bash では を使ってそれができます(foo &>/dev/null &)が、Windows シェルでそれをどうすればよいかわかりません。誰か助けてくれませんか?

答え1

Windows でこれを行う方法は次のとおりです。

start /B foo > NUL 2>&1

コマンドstartは、分離プロセスを開始します。これは、 と同様の効果です&。実行中のプログラムがコンソールアプリケーションである場合、 は新しいターミナルウィンドウを開かないように/Bするオプションがあります(GUI アプリケーションでは不要です)。 はLinux と同じ意味を持ち、Windows の に相当します。start>NUL/dev/null2>&1終わりstderr を stdout にリダイレクトし、すべてが に送信されますNUL

答え2

直接同等のものはありません。

説明どおりここ呼び出し元をブロックしない方法でプログラムを呼び出すには、startオプションを使用して、 コマンドを使用します/b。ただし、この場合の出力リダイレクトについてはわかりません。バッチ ファイルにラップする必要がある可能性があります。

については> /dev/null簡単です。>NUL.NULは DOS デバイス名です。ただし、省略演算子は使用できません。 . を手動で使用する必要があります2>&1ここそれについてもう少し情報があります。

関連情報