2016-08-07 12 views
3

Ich habe eine Batch-Datei, die verwendet wird, um einen zweiten Batch auszulösen, um einen anderen Prozess zu starten. Die Batch-Skripts werden als zwei verschiedene Prozesse in zwei Terminals ausgeführt.Kill den untergeordneten Batch-Prozess von übergeordneten Batch

Wenn der erste Batch-Prozess beendet und erneut ausgeführt wird, müssen wir zuerst den zweiten Batch-Prozess beenden und dann neu starten. Wie können wir den zweiten Prozess mit der übergeordneten Stapeldatei beenden?

Das aktuelle Code-Snippet ist wie folgt. Allerdings ist die Kündigung nicht passieren:

tasklist /FI "WINDOWTITLE eq Server" 2>NUL | find /I /N "Server">NUL 

IF "%ERRORLEVEL%"=="0" ( 
    TASKKILL /F /FI "WINDOWTITLE eq Server" 
    timeout /t 120 /nobreak 
    START "Server" "test.bat" 
) ELSE START "Server" "test.bat" 

Antwort

-1

Dieses Skript funktioniert gut für mich:

@echo off 
tasklist /FI "WINDOWTITLE eq Server" >nul 2>&1 
IF "%ERRORLEVEL%"=="0" ( 
    TASKKILL /F /FI "WINDOWTITLE eq Server" >nul 2>&1 
    timeout /t 5 /nobreak 
    START "Server" "test.bat" 
) ELSE (START "Server" "test.bat") 
exit /b 
+0

Die Klammern ändern nichts! – aschipfl

+0

Aktualisiert das Skript, es funktioniert gut für mich. Stellen Sie sicher, dass Sie nur ein offenes Cmd-Fenster mit dem Namen "Server" haben. – sambul35

+0

Wenn das Skript für Sie funktioniert und Sie in Zukunft mehr Hilfe benötigen, ** ** Upvote ** und ** Accept ** die Antwort, indem Sie sowohl _Arrow Up_ als auch _Select_ auf der linken Seite der _Answer Box_ klicken. :) – sambul35

Verwandte Themen