プログラムをバックグラウンドで実行し、ウィンドウが閉じられているシナリオに対応するにはどうすればよいですか?

プログラムをバックグラウンドで実行し、ウィンドウが閉じられているシナリオに対応するにはどうすればよいですか?

プログラムをバックグラウンドで実行するには以下を使用します:

START /B my.exe

しかし、コマンド ラインを閉じると、プロセスは実行を停止します。コマンド ラインからプログラムをバックグラウンドで実行し、コマンド ウィンドウが閉じられても実行を継続するにはどうすればよいでしょうか。

答え1

違いがあります:

  • my.exeがコマンドライン ツールである場合、START /B my.exeは と同等であるmy.exeため、対応するウィンドウが閉じられるmy.exeと は終了します。cmd
  • my.exeがグラフィカル ユーザー インターフェイス (GUI) アプリケーションである場合、対応するウィンドウが閉じられているmy.exeかどうかに関係なく、実行を継続する必要があります。cmd

次の例を使用して違いを確認できます ( はcscript.exeコマンド ライン ツールであるのに対し、はwscript.exeGUI アプリケーションであることに注意してください)。

start "" /B cscript 923692.vbs

反対に

start "" /B wscript 923692.vbs

次のようにサンプル923692.vbsスクリプトを作成します (または別の半無限スクリプトを使用します)。

Dim WshShell, BtnCode
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
  BtnCode = WshShell.Popup( _
    WScript.ScriptName & vbNewLine & "Exit script?" _
    , 5 _
    , WScript.FullName _
    , vbOKCancel + vbQuestion)
  If BtnCode = vbOK Then Exit Do 
  Wscript.Sleep 15000
Loop

読むstart コマンドリファレンススイッチの意味について/B

関連情報