PID der laufenden oder aufzurufenden Batch auslesen
Hallo,
ich möchte die Prozess ID der laufenden Batch (cmd.exe) auslesen. Nach einer längeren Suche habe ich folgenden indirekten Ansatz mit einer vorgeschaltenen Batch Datei gefunden.
Mit einem Datei Vergleich wollte ich nun die neue PID auswerten, dummerweise bekomme ich beim tasklistpre 2 CMD PID und beim tasklistpost 3PID.
Beim Start Batch Datei läuft kein cmd Prozess
tasklistpre
4844 <- check.bat
4232 <- ?
tasklistpost
4844 <- check.bat
4352
4548
Im Taskmanager ist nur noch 4352 offen --> start.bat.
Nach dem Vergleich könnte ich natürlich einfach beide ID per taskkill Skript beenden, wäre aber nicht gerade schön.
Kennt jemand vieleicht einen besseren Ansatz oder wie man hiermit eindeutig die PID bekommt?
Unter Linux gibts ja den Platzhalter $$ der direkt die PID ausgibt.
Danke
ich möchte die Prozess ID der laufenden Batch (cmd.exe) auslesen. Nach einer längeren Suche habe ich folgenden indirekten Ansatz mit einer vorgeschaltenen Batch Datei gefunden.
check.bat
for /f "tokens=1-6" %%a in ('tasklist /V /FI "IMAGENAME eq cmd.exe" /NH') do echo %%b >> tasklistpre.txt
START start.bat
for /f "tokens=1-6" %%a in ('tasklist /V /FI "IMAGENAME eq cmd.exe" /NH') do echo %%b >> tasklistpost.txt
start.bat
pause
Mit einem Datei Vergleich wollte ich nun die neue PID auswerten, dummerweise bekomme ich beim tasklistpre 2 CMD PID und beim tasklistpost 3PID.
Beim Start Batch Datei läuft kein cmd Prozess
tasklistpre
4844 <- check.bat
4232 <- ?
tasklistpost
4844 <- check.bat
4352
4548
Im Taskmanager ist nur noch 4352 offen --> start.bat.
Nach dem Vergleich könnte ich natürlich einfach beide ID per taskkill Skript beenden, wäre aber nicht gerade schön.
Kennt jemand vieleicht einen besseren Ansatz oder wie man hiermit eindeutig die PID bekommt?
Unter Linux gibts ja den Platzhalter $$ der direkt die PID ausgibt.
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 108562
Url: https://administrator.de/forum/pid-der-laufenden-oder-aufzurufenden-batch-auslesen-108562.html
Ausgedruckt am: 21.04.2025 um 17:04 Uhr
2 Kommentare
Neuester Kommentar
Wen die 4844 die check bat ist dann ist die 4232 das Tasklist in der ersten For schleife.
Die 4352 und die 4548 gehören dan zum Tastlist in der zweiten For schleife und zur Start bat.
Wen du es direkt udn eindeutig wilslt könntest du es so machen das du der Start.bat einen eindeutigen Fenstertitel gibst (befehl "tile").
Mit Tasklist /V bekosmt du ja zu jedem tast den Fenstertitel in der letzten Spalte angegeben. Mit Findstr kanns tud dann diesen Vordefinierten Fenstertitel suchen udn die zugehörige ID finden.
Die 4352 und die 4548 gehören dan zum Tastlist in der zweiten For schleife und zur Start bat.
Wen du es direkt udn eindeutig wilslt könntest du es so machen das du der Start.bat einen eindeutigen Fenstertitel gibst (befehl "tile").
Mit Tasklist /V bekosmt du ja zu jedem tast den Fenstertitel in der letzten Spalte angegeben. Mit Findstr kanns tud dann diesen Vordefinierten Fenstertitel suchen udn die zugehörige ID finden.