Jak uruchomić program w tle i obsłużyć scenariusz, w którym okno jest zamknięte?
0
Aby uruchomić program w tle, używam:
START /B my.exe
Ale po zamknięciu linii poleceń proces przestaje działać. Jak uruchomić program w tle z linii poleceń i kontynuować pracę, jeśli okno poleceń jest zamknięte?
Nie możesz. Dlaczego po prostu nie uciekniesz my.exe bezpośrednio z linii poleceń, zamiast używać start?
DavidPostill
Odpowiedzi:
0
Jest różnica:
jeśli my.exe to narzędzie wiersza poleceń START /B my.exe jest równa my.exe w związku z tym my.exe zostanie zabity, jeśli odpowiada cmd okno jest zamknięte;
jeśli my.exe to aplikacja graficznego interfejsu użytkownika (GUI) my.exe powinien działać bez względu na odpowiednie cmd okno jest zamknięte.
Możesz sprawdzić różnicę za pomocą następnego przykładu (zwróć uwagę na to cscript.exe jest narzędziem linii poleceń podczas wscript.exe to aplikacja GUI):
start "" /B cscript 923692.vbs
w przeciwieństwie do
start "" /B wscript 923692.vbs
Utwórz próbkę 923692.vbs skrypt w następujący sposób (lub użyj innego pół-nieskończonego):
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
my.exe
bezpośrednio z linii poleceń, zamiast używaćstart
?Odpowiedzi:
Jest różnica:
my.exe
to narzędzie wiersza poleceńSTART /B my.exe
jest równamy.exe
w związku z tymmy.exe
zostanie zabity, jeśli odpowiadacmd
okno jest zamknięte;my.exe
to aplikacja graficznego interfejsu użytkownika (GUI)my.exe
powinien działać bez względu na odpowiedniecmd
okno jest zamknięte.Możesz sprawdzić różnicę za pomocą następnego przykładu (zwróć uwagę na to
cscript.exe
jest narzędziem linii poleceń podczaswscript.exe
to aplikacja GUI):w przeciwieństwie do
Utwórz próbkę
923692.vbs
skrypt w następujący sposób (lub użyj innego pół-nieskończonego):Czytać
start
odwołanie do polecenia dla/B
zmienić znaczenie.źródło