回答:
start
すでに正しい方向でなければなりません。ただし、/b
同じコンソールに接続します。ここでの問題は、コンソールウィンドウが閉じられると、このコンソールに関連付けられているすべてのプロセスも閉じられることです。
start
なし/b
で使用しても、新しいコンソールで実行されます。コンソールウィンドウを使わずにバックグラウンドで実行する場合は、VBScriptまたはサードパーティのツールを使用する必要があります。バッチファイルを完全に非表示の方法で実行します。
ただし、その場合、stdout / stderrの出力は表示されなくなります。ただし、cmd /c your_command > stdout.txt 2> stderr.txt
呼び出しでラップし、前述のメソッド(VBScript、サードパーティツールなど)のいずれかを使用してこれを開始することにより、ファイルにリダイレクトすることもできます。
または、終了する前に独自のコンソールウィンドウを非表示にすることもできます。私はちょうどそれを行う小さな1行のプログラムを書きました(ソースコードは基本的にですShowWindow(GetConsoleWindow(), SW_HIDE)
):http : //share.cherrytree.at/showfile-24286/hide_current_console.exe
このようにして、を使用できstart /b
ます。コンソールを「閉じる」(技術的には非表示にする)場合はhide_current_console & exit
、コンソールを非表示にしてからcmd.exeプロセス(Pythonプロセスではない)を閉じるコマンドを実行します-1行で、exit
コンソールがすでに非表示になっていると入力できません。
私は以下がうまくいったことを発見しました:
run python script.py
&
)ではなく、のdisown
使用をお勧めしnohup
ます。
'run' is not recognized as an internal or external command, operable path or batch file.
。
hide_current_console
から来たの?W10 PCでは動作しません。