Gibt es eine Möglichkeit, eine Windows-.bat-Datei zu schreiben, um Prozesse abzubrechen?
-
09-06-2019 - |
Frage
Jedes Mal, wenn ich meine firmeneigene Entwicklungsmaschine einschalte, muss ich mehr als 10 Prozesse mit dem Task-Manager oder einer anderen Prozessverwaltungs-App beenden, um eine anständige Leistung aus meiner IDE herauszuholen.Ja, das sind Prozesse von Programmen, die mein Unternehmen aus Sicherheits- und Compliance-Gründen auf meinem Computer installiert.Was ich tun möchte, ist eine .bat-Datei oder ein Skript, das ich einfach starten und die betreffenden Prozesse beenden kann.
Weiß jemand schon, wie man das macht?
Lösung
Sie können dies mit „taskkill“ tun.Mit dem Parameter /IM können Sie Bildnamen angeben.Beispiel:
taskkill /im somecorporateprocess.exe
Sie können dies auch tun, um das Töten zu erzwingen:
taskkill /f /im somecorporateprocess.exe
Fügen Sie einfach eine Zeile pro Prozess hinzu, den Sie beenden möchten, speichern Sie ihn als .bat-Datei und legen Sie ihn in Ihrem Startverzeichnis ab.Problem gelöst!
Wenn es sich um ein Legacy-System handelt, PsKill werde das Gleiche tun.
Andere Tipps
taskkill /f /im "devenv.exe"
Dadurch wird die PID mit dem Exe-Namen „devenv.exe“ zwangsweise beendet.
entspricht -9 beim Befehl nix'y kill
Da TASKKILL auf einigen Home-/Basic-Editionen von Windows möglicherweise nicht verfügbar ist, finden Sie hier einige Alternativen:
TSKILL processName
oder
TSKILL PID
Denken Sie daran processName
sollte das nicht haben .exe
Suffix und ist auf 18 Zeichen begrenzt.
Eine andere Möglichkeit ist WMIC
:
wmic Path win32_process Where "Caption Like 'MyProcess.exe'" Call Terminate
wmic bietet noch mehr Flexibilität als taskkill .With wmic Path win32_process get
Sie können die verfügbaren Dateien sehen, die Sie filtern können.
Ich gehe davon aus, dass Sie als Entwickler ein gewisses Maß an administrativer Kontrolle über Ihren Computer haben.Wenn ja, führen Sie über die Befehlszeile msconfig.exe aus.Mit den oben genannten Lösungen können Sie verhindern, dass viele Prozesse überhaupt gestartet werden, sodass sie nicht mehr beendet werden müssen.
Erhalten Autoruns von Mark Russinovich, dem Sysinternals-Typ, der das Sony Rootkit entdeckt hat ...Die beste Software, die ich je verwendet habe, um Dinge zu bereinigen, die automatisch gestartet werden.
Herunterladen PSKill.Schreiben Sie eine Batchdatei, die sie für jeden Prozess aufruft, den Sie beenden möchten, und übergeben Sie dabei jeweils den Namen des Prozesses.
Verwenden Sie Powershell!Integrierte Cmdlets zum Verwalten von Prozessen. Beispiele hier (auf die harte Tour), Hier(eingebaut) und Hier (mehr).
Nachfolgend finden Sie die Logik, in der sie unter der Bedingung funktioniert.
Wenn wir einfach anrufen taskkill /im applicationname.exe
, es wird nur beendet, wenn dieser Prozess ausgeführt wird.Wenn dieser Prozess nicht ausgeführt wird, wird ein Fehler ausgegeben.
Um es vorher zu überprüfen takskill
aufgerufen wird, kann eine Prüfung durchgeführt werden, um sicherzustellen, dass sie ausgeführt wird taskkill
wird nur ausgeführt, wenn der Prozess ausgeführt wird, sodass kein Fehler ausgegeben wird.
tasklist /fi "imagename eq applicationname.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "applicationname.exe"
Hier habe ich einen Beispielbefehl geschrieben, den Sie in Ihren einfügen können cmd
Befehlszeilen-Eingabeaufforderung und ist dafür geschrieben chrome.exe
.
FOR /F "tokens=2 delims= " %P IN ('tasklist /FO Table /M "chrome*" /NH') DO (TASKKILL /PID %P)
Das for nimmt einfach alles PID
s sind unten aufgeführt tasklist
Befehl und führt aus TASKKILL /PID
auf jedem PID
tasklist /FO Table /M "chrome*" /NH
Wenn Sie for in einer Batchdatei verwenden, verwenden Sie einfach %%P anstelle von %P