Batch - Warten bis bestimmter Task läuft
Hallo Experten!
Wie kann ich in einer Batch warten, bis ein bestimmter Task (der nicht von dieser Batch gestartet wurde) läuft?
Schöne Grüße von der Elbe
Winfried
Wie kann ich in einer Batch warten, bis ein bestimmter Task (der nicht von dieser Batch gestartet wurde) läuft?
Schöne Grüße von der Elbe
Winfried
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 329281
Url: https://administrator.de/forum/batch-warten-bis-bestimmter-task-laeuft-329281.html
Ausgedruckt am: 03.04.2025 um 06:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
Darf und kann deine Batch diesen Task überhaupt sehen bzw. erkennen?
Muss deine Batch dann mit erhöhten Rechten laufen?
Hat der zu suchende Task den einen eindeutigen Name oder ist dessen PID bekannt?
Warum nicht den zu startenden Task die Aufgabe verpassen dir eine Nachricht zukommen zu lassen - ich bin jetzt gestartet....?
Um welches OS geht es überhaupt? Bash oder Batch hört sich bei manchen gleich an und Schreiben es auch gleich....
Gruß,
Peter
Zitat von @Winfried-HH:
Wie kann ich in einer Batch warten, bis ein bestimmter Task (der nicht von dieser Batch gestartet wurde) läuft?
Schleife und darin immer wieder schauen ob der Task auftaucht. Kann aber trotzdem sein das du das verpasst. Mit dieser Abfrageform kannst du allerdings auch Systeme lahm legen bzw. die machen nichts anderes mehr. Batch ist dort nicht die erste Wahl.Wie kann ich in einer Batch warten, bis ein bestimmter Task (der nicht von dieser Batch gestartet wurde) läuft?
Darf und kann deine Batch diesen Task überhaupt sehen bzw. erkennen?
Muss deine Batch dann mit erhöhten Rechten laufen?
Hat der zu suchende Task den einen eindeutigen Name oder ist dessen PID bekannt?
Warum nicht den zu startenden Task die Aufgabe verpassen dir eine Nachricht zukommen zu lassen - ich bin jetzt gestartet....?
Um welches OS geht es überhaupt? Bash oder Batch hört sich bei manchen gleich an und Schreiben es auch gleich....
Gruß,
Peter

Zitat von @Winfried-HH:
Wie kann ich in einer Batch warten, bis ein bestimmter Task (der nicht von dieser Batch gestartet wurde) läuft?
Eine dauerlaufende Batch??, Quark dafür erstelle einfach einen weiteren Task mit einem benutzerdefinierten Tasktrigger in der Aufgabenplanung der dein Skript automatisch startet wenn der andere Task gestartet wird Wie kann ich in einer Batch warten, bis ein bestimmter Task (der nicht von dieser Batch gestartet wurde) läuft?
Der benutzerdefinierte XML-Trigger sieht für den Start eines Tasks so aus
<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=100)] and EventData[Data[@Name='TaskName'] = '\Testtask']]</Select>
</Query>
</QueryList>
Den Pfad zum Taskname (hier \Testtask) noch anpassen, dein Skript als Aktion angeben, fertig ist die Laube.
Gruß
Hallo Winfried.
Ich gebe meinen Vorrednern grundsätzlich Recht. Wenn es unbedingt Batch sein soll, dann bspw. so:
Grüße
rubberman
Ich gebe meinen Vorrednern grundsätzlich Recht. Wenn es unbedingt Batch sein soll, dann bspw. so:
@echo off &setlocal
set "taskname=notepad.exe"
:while not running
tasklist /nh /fi "imagename eq %taskname%" /fo csv | findstr /bic:"\"%taskname%\"" >nul || (timeout /t 1 /nobreak >nul &goto while)
echo %taskname% laeuft
pause
rubberman

Moment, dann stellt sich jetzt aber noch die Frage was der TO tatsächlich mit Task meint, einen Prozess oder einen bestimmten Task im Taskplaner
.
Öhm ... ja ... geplanter Task dann wohl eher so ...
Da wird's allerdings schon recht sprachabhängig. (Microsoft und ihr MUI. Grrr ...)
Grüße
rubberman
@echo off &setlocal
set "taskname=\Microsoft\Windows\Multimedia\SystemSoundsService"
>nul chcp 1252
set "status=wird ausgeführt"
>nul chcp 850
:while not running
schtasks /query /nh /tn "%taskname%" /fo csv 2>nul | findstr /eic:"\"%status%\"" >nul || (timeout /t 1 /nobreak >nul &goto while)
echo %taskname% laeuft
pause
Grüße
rubberman