Batch Programm (2) beenden wenn Programm (1) manuell beendet wurde

oklop

Cadet 3rd Year
Registriert
Feb. 2012
Beiträge
62
Hallo,

Kann mir bitte jemand sagen wie ich das lösen kann??? also ich habe 2 Programme die ich hintereinander starte wenn ich das Programm (1) aber manuell beende soll automatisch sich Programm 2 beenden wie mache ich das??? meine Batch Datei sieht gerade so aus...

@echo off
start "" "Programm(1)"
start "" "Programm(2)"
exit

danke
 
Ohne jetzt den genauen Code zu kennen musst permanent in einer Schleife überwachen das die Programme/Prozesse laufen.
Wenn Programm1 nicht mehr läuft beende Programm2.
 
Probiere mal so

start "" "Programm(1)"
call "" "Programm(2)"
taskkill /im "Programm(1)" /F
 
oklop schrieb:
damit öffnet sich leider Garnichts mehr...

Weil call die Syntax nicht verträgt. Außerdem hat er Programm1 und zwei vertauscht, 1 machst du manuell zu, also muss 2 noch geschlossen werden. Folglich also:
Code:
start "Programm(2)"
call "Programm(1)"
taskkill /im "Programm(2)" /F
oder auch
Code:
start "Programm(2)"
"Programm(1)"
taskkill /im "Programm(2)" /F
 
Dieses VBS-Script startet zwei Prozesse und wenn einer beendet wurde beendet es auch den anderen.
Code:
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")
objTempFile = objFSO.GetTempName
Set objExec1 = WSHShell.Exec("calc.exe")
WScript.Sleep 250
Set objExec2 = WSHShell.Exec("calc.exe")
LoopVariable = 0
Do Until LoopVariable  = 1
 WScript.Sleep 250
 WSHShell.Run "%comspec% /c TASKLIST /FI ""PID eq " & objExec1.ProcessID & """ >" & objTempFile, 0, True
 Set objTextFile = objFSO.OpenTextFile(objTempFile, 1)
 Do While Not objTextFile.AtEndOfStream
  If Instr(objTextFile.ReadLine,"INFO") <> 0 Then
   LoopVariable = 1
  End If
 Loop
 objTextFile.Close
 objFSO.DeleteFile(objTempFile)
 Set objExecTmp = objExec1
 Set objExec1 = objExec2
 Set objExec2 = objExecTmp
Loop
objExec1.Terminate()
objExec2.Terminate()
 
Zurück
Oben