Для запуска программы в фоновом режиме я использую:

START /B my.exe

Но когда я закрываю командную строку, процесс перестает работать. Как запустить программу в фоновом режиме из командной строки и продолжить работу, если окно командной строки закрыто?

1 ответ1

0

Есть разница:

  • если my.exe - инструмент командной строки, то START /B my.exe эквивалентен my.exe поэтому my.exe будет убит, если будет закрыто соответствующее окно cmd ;
  • Если my.exe является приложением с графическим интерфейсом (GUI), то my.exe должен продолжаться независимо от того, закрыто ли соответствующее окно cmd .

Вы можете проверить разницу, используя следующий пример (обратите внимание, что cscript.exe - это инструмент командной строки, а wscript.exe - приложение с графическим интерфейсом):

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .