Prozess per PID killen - Bestimmte Zeichenfolge aus Txt-Datei in Batch-Datei nutzen
Hallo zusammen,
ich habe folgendes Problem. Ich schreibe gerade an einer Batchdatei und bin an einen Punkt gelangt wo ich nicht mehr durch Recherche weiterkomme.
Warum ich diese Batchdatei brauche ist dieser Grund:
Der User soll wenn ihm der Prozess UNWICHTIG.EXE hängen bleibt diesen Prozess durch ausführen der Batchdatei schließen können. Problem bei diese Sache ist jetzt aber man kann nicht einfach hergehen und den Befehl:
@echo off
echo.
echo Unwichtig wird beendet
echo.
taskkill /im UNWICHTIG.EXE
in die Batchdatei schreiben. Da diese Batchdatei im Netzwerk ausgeführt wird und dort mehrere UNWICHTIG.EXE Prozesse von verschiedenen Usern laufen.
Darum bin ich hergegangen und habe mir versucht die PID des Prozesses zu suchen und diesen dann mittels der PID zu beenden.
Zuerst habe ich mir die txt-Dati "var" erstellt. Danach habe ich mir die tasklist als CSV generiert und danach mir komplett alle Angaben zum Prozess UNWICHTIG.EXE geholt und in die txt-Datei geschrieben.
@echo off
echo.
echo unwichtig killen
echo.
var.txt
tasklist /FO "CSV" /FI "IMAGENAME eq UNWICHTIG.EXE" > var.txt
Problem ist das ich nicht weiß wie ich wie ich jetzt die PID aus der txt-Datei bekomme und wieder in die Batchdatei um den Prozess per PID zu schließen.
Gibt es vielleicht auch eine andere Möglichkeit? Vielleicht denke ich zu kompliziert.
Es muss aber vollautomatisch sein da die User nicht wissen sollen wie die Batchdatei das macht.
Ich hoffe ich habe das Problem hinreichend erklärt.
Ich danke für jede Antwort.
MfG Raffi
P.S. Ich hatte echt Probleme eine angemessene Überschrift zu finden für diese Problem ich hoffe das geht
ich habe folgendes Problem. Ich schreibe gerade an einer Batchdatei und bin an einen Punkt gelangt wo ich nicht mehr durch Recherche weiterkomme.
Warum ich diese Batchdatei brauche ist dieser Grund:
Der User soll wenn ihm der Prozess UNWICHTIG.EXE hängen bleibt diesen Prozess durch ausführen der Batchdatei schließen können. Problem bei diese Sache ist jetzt aber man kann nicht einfach hergehen und den Befehl:
@echo off
echo.
echo Unwichtig wird beendet
echo.
taskkill /im UNWICHTIG.EXE
in die Batchdatei schreiben. Da diese Batchdatei im Netzwerk ausgeführt wird und dort mehrere UNWICHTIG.EXE Prozesse von verschiedenen Usern laufen.
Darum bin ich hergegangen und habe mir versucht die PID des Prozesses zu suchen und diesen dann mittels der PID zu beenden.
Zuerst habe ich mir die txt-Dati "var" erstellt. Danach habe ich mir die tasklist als CSV generiert und danach mir komplett alle Angaben zum Prozess UNWICHTIG.EXE geholt und in die txt-Datei geschrieben.
@echo off
echo.
echo unwichtig killen
echo.
var.txt
tasklist /FO "CSV" /FI "IMAGENAME eq UNWICHTIG.EXE" > var.txt
Problem ist das ich nicht weiß wie ich wie ich jetzt die PID aus der txt-Datei bekomme und wieder in die Batchdatei um den Prozess per PID zu schließen.
Gibt es vielleicht auch eine andere Möglichkeit? Vielleicht denke ich zu kompliziert.
Es muss aber vollautomatisch sein da die User nicht wissen sollen wie die Batchdatei das macht.
Ich hoffe ich habe das Problem hinreichend erklärt.
Ich danke für jede Antwort.
MfG Raffi
P.S. Ich hatte echt Probleme eine angemessene Überschrift zu finden für diese Problem ich hoffe das geht
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 101328
Url: https://administrator.de/contentid/101328
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
4 Kommentare
Neuester Kommentar
ich habe es zwar noch nicht ganz verstanden, weiß vor allem nicht, ob in der var.txt jetzt mehrere Prozesse mit dem Namen auftauchen, oder exakt einer, aber grundlegend wäre die Idee dir for-Schleife:
Das ganze geht natürlich nur, wenn es nur einen Prozess mit dem Namen gibt, das Beispiel würde sonst die letzte PID nehmen. Aber in diesem Bezug habe ich dein Problem noch nicht so 100%tig verstanden.
Hoffe, ich konnte weiterhelfen
FOR /F "tokens=2 delims=," %i IN ('type "var.txt"') DO set pid=%i
set pid=%pid:~1,-1%
taskkill /PID %pid%
Hoffe, ich konnte weiterhelfen
Moin raffi3110,
Du kannst doch den Filter um eine weitere Bedingung erweitern.
Vorarbeit am CMD-Prompt (proof-of-concept):
... und danach die eigentliche Aufgabe IMHO einfacher so handeln:
[TaskKill ggf. mit Parameter /F, siehe TaskKill /?]
Grüße
Biber
Du kannst doch den Filter um eine weitere Bedingung erweitern.
Vorarbeit am CMD-Prompt (proof-of-concept):
tasklist /FO "CSV" /FI "IMAGENAME eq UNWICHTIG.EXE" /FI "username eq %username%"
-oder-
tasklist /Fo list /FI "IMAGENAME eq UNWICHTIG.EXE" /FI "username eq %username%"|find /i "PID:"
taskkill /FI "IMAGENAME eq INWICHTIG.EXE" /FI "username eq %username%"|find /i "PID:"
Grüße
Biber