Von Batchdatei ausgeführten Prozess benennen
Hallo zusammen,
ich habe zwei Batch-Dateien, die im Hintergrund Daten auf Server kopieren und löschen.
Wenn ich nun in den Task-Manager schaue steht unter "Prozessen" die beiden Prozesse als "cmd.exe" eingetragen.
Mir ist jedoch wichtig, dass die beiden Prozesse bestimmte Namen bekommen.
Als Beispiel: Wenn man Notepad öffnet, gibt es einen Prozess mit dem Namen "Notepad.exe".
Nun zu meiner Frage: Ist es möglich den Prozessnamen im Voraus zu bestimmen?
Vielen Dank schon mal und schöne Grüße
itazubii
ich habe zwei Batch-Dateien, die im Hintergrund Daten auf Server kopieren und löschen.
Wenn ich nun in den Task-Manager schaue steht unter "Prozessen" die beiden Prozesse als "cmd.exe" eingetragen.
Mir ist jedoch wichtig, dass die beiden Prozesse bestimmte Namen bekommen.
Als Beispiel: Wenn man Notepad öffnet, gibt es einen Prozess mit dem Namen "Notepad.exe".
Nun zu meiner Frage: Ist es möglich den Prozessnamen im Voraus zu bestimmen?
Vielen Dank schon mal und schöne Grüße
itazubii
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 314513
Url: https://administrator.de/contentid/314513
Ausgedruckt am: 05.11.2024 um 20:11 Uhr
12 Kommentare
Neuester Kommentar
Wenn ich nun in den Task-Manager schaue steht unter "Prozessen" die beiden Prozesse als "cmd.exe" eingetragen.
Nach dieser Aussage war ich gegangen. Und im Taskmanager sieht das dann so aus:
Den "Abbildnamen" wirst du nicht ändern können. Das Programm, welches ausgeführt wird, heißt nun mal cmd.exe (Ein Befehlszeileninterpreter)
Hi,
was @AndreasHoster meint:
Wenn Du eine CMD "startest", dann ruft Windows die CMD.EXE auf und übergibt als Parameter den Pfad zur Batch.
Du kannst diese "CMD.EXE" kopieren, dabei einen anderen Namen geben. Dann diese Kopie starten mit Angabe des Pfads zur Batch-Datei, statt direkt die Batch zu starten. Könnte funktionieren ....
Oder
Kann "einem Monitoring-System" auch die Befehlszeile auswerten? Im Taskmanager kannst Du noch weitere Spalten einblenden lassen, so auch "Befehlszeile" oder im Englischen "command line". Dort erscheint in jedem Fall der Name der Batch-Datei.
E.
was @AndreasHoster meint:
Wenn Du eine CMD "startest", dann ruft Windows die CMD.EXE auf und übergibt als Parameter den Pfad zur Batch.
Du kannst diese "CMD.EXE" kopieren, dabei einen anderen Namen geben. Dann diese Kopie starten mit Angabe des Pfads zur Batch-Datei, statt direkt die Batch zu starten. Könnte funktionieren ....
Oder
Kann "einem Monitoring-System" auch die Befehlszeile auswerten? Im Taskmanager kannst Du noch weitere Spalten einblenden lassen, so auch "Befehlszeile" oder im Englischen "command line". Dort erscheint in jedem Fall der Name der Batch-Datei.
E.
Hallo,
Nein, ist nicht möglich. Batchscripte können nicht direkt als Prozess ausgeführt werden, der Code darin muss zuerst interpretiert werden. Das macht das Programm
Die einzige Möglichkeit die Du hast, um die beiden laufenden Batchscripte zu unterscheiden, ist die Kommandozeile, mit der der jeweilige
Das liefert die Kommandozeile und die Process-ID aller Prozesse, die den Namen
Du musst die Ausgabe nur noch auswerten, dann kannst Du z.B. mit
Gruß
Friemler
Die einzige Frage von mir ist ob es möglich ist den Prozess von vorn hinein anders zu nennen.
Nein, ist nicht möglich. Batchscripte können nicht direkt als Prozess ausgeführt werden, der Code darin muss zuerst interpretiert werden. Das macht das Programm
CMD.EXE
, die sog. Eingabeaufforderung, auch Konsole genannt. Deshalb taucht für jedes Batchscript im Taskmanager nur ein Prozess auf, bei dem in der Spalte "Abbildname" der Wert cmd.exe
steht.Die einzige Möglichkeit die Du hast, um die beiden laufenden Batchscripte zu unterscheiden, ist die Kommandozeile, mit der der jeweilige
cmd.exe
-Prozess gestartet wurde. Das geht folgendermaßen:wmic process where "name='cmd.exe'" get commandline, processid
Das liefert die Kommandozeile und die Process-ID aller Prozesse, die den Namen
cmd.exe
haben.Du musst die Ausgabe nur noch auswerten, dann kannst Du z.B. mit
TASKLIST
anhand der Process-ID prüfen, ob der Prozess noch läuft o.ä.Gruß
Friemler
Hallo Friemler,
da hast du Recht. Und wenn du einmal wmic aufrufst, kannst du die Prüfung eigentlich auch gleich damit abfackeln.
... oder ähnlich.
Grüße
rubberman
da hast du Recht. Und wenn du einmal wmic aufrufst, kannst du die Prüfung eigentlich auch gleich damit abfackeln.
@echo off &setlocal
set filenames="test1.bat","test2.bat"
for /l %%i in () do (
cls
for %%j in (%filenames%) do (
2>&1 >nul wmic Process WHERE "name='cmd.exe' AND commandline LIKE '%%\\%%~j%%'" GET |>nul find /v "" && ECHO ALARM %%j laeuft nicht!
)
>nul timeout /t 2 /nobreak
)
Grüße
rubberman