Beenden Sie einen Prozess mit einer bestimmten "Befehlszeile" von der Befehlszeile aus
42232
ripper234
Gibt es ein Befehlszeilenprogramm, das alle Prozesse mit einer bestimmten Befehlszeile beendet?
Beenden Sie beispielsweise alle Prozesse mit dem Namen "java.exe" mit einer Befehlszeile, die "-jar selenium-server.jar" enthält. Dies ist über den Process Explorer möglich.
Ich glaube, dass die beiden folgenden Antworten falsch sind, da Sie nicht gefragt werden, wie Sie einen .exe-Prozess beenden, und Sie fragen, wie Sie einen .exe-Prozess beenden, der eine bestimmte Befehlszeile enthält
admintech vor 15 Jahren
3
Sprichst du nur über Windows? Ihre Beispiele und die bereitgestellten Antworten lassen es so erscheinen, als ob Sie es wären, aber Sie haben dies nicht angegeben.
Nathan Fellman vor 15 Jahren
2
Können Sie erklären, "wie dies durch Process Explorer möglich ist?" Ich habe gerade ein Java - Glas gestartet und es zeigt nur java.exe
Sathya vor 15 Jahren
0
ich wette, er / sie meinte "sysinternals process explorer"
akira vor 15 Jahren
0
Sysinternals Process Explorer natürlich. Sie können viele Informationen zu laufenden Prozessen anzeigen, einschließlich der Befehlszeile.
ripper234 vor 15 Jahren
0
Ich bezog mich auch auf den Prozessexplorer von Sysinternals
Sathya vor 15 Jahren
0
In Windows XP können Sie dazu einfach die WMI- Konsole von WMIC verwenden . Geben Sie in einem Befehlsprot Folgendes ein:
wmic Path win32_process Where "CommandLine Like '%-jar selenium-server.jar%'" Call Terminate
Bearbeiten:
Ich habe den Alias ' process ' durch den vollständigen Pfad (' path win32_process ') ersetzt, ebenso wie der Port von Aviator. Dieser Alias darf nicht in jedem Betriebssystem deklariert werden.
+20 Das ist es! Dammit :) Auch ich habe die WMIC verfolgt. Aber ich habe es von der WMIC-Konsole aus gemacht und konnte LIKE nicht anwenden. Ich bekam Syntaxfehler, die mich zwangen, '=' zu verwenden, was mich wiederum dazu zwang, das gesamte Feld CommandLine einzugeben. Schön, dass LIKE außerhalb der WMIC-Konsole funktioniert. Sollte daran gedacht haben. Hut ab
A Dwarf vor 15 Jahren
1
funktioniert perfekt, wenn ich es von der Kommandozeile aus anrufe. Ich habe TeamCity, der einen Prozess startet, den ich am Ende des Builds beenden muss. Wenn dieselbe Befehlszeile, die von TeamCity aufgerufen wird, "Keine Instanz (en) verfügbar" zurückgibt, wird der Prozess durch die gleiche Kommandozeile, die in cmd kopiert / eingefügt wurde, irgendwie beendet. Irgendwelche Ideen, warum das so wäre?
root vor 10 Jahren
0
Nur ein kleiner Tipp für cmd-Dateien. Um diesen Befehl aus der cmd-Datei zu verwenden, sollten Sie alle '%' - Zeichen durch ein zweites '%' - Zeichen ersetzen, z. B. ... CommandLIne Like '%% - jar ...
sarh vor 10 Jahren
3
8
vpram86
Wenn Sie eine Windows-Version verwenden, die den Befehl WMIC enthält. Sie können es versuchen
wmic path win32_process Where "Caption Like '%java.exe%' AND CommandLine Like '%selenium.jar%'" get ProcessId|more +1
Die more +1erste Zeile mit der Kopfzeile wird entfernt und die PID wird allein gedruckt. Wenn es mehr als einen Java-Prozess gibt, der selenium.jar enthält, wird eine PID pro Zeile zurückgegeben.
3
brien
Ich glaube, Sie könnten dies mit PowerShell unter Verwendung von Get-Process und den StartInfo.Arguments für den gewünschten Prozess tun.
Sie haben den zweiten Teil der Frage verpasst: "spezifische Befehlszeile" ... nicht die erste java.exe, die mitkommt .. weder alle java.exe-Prozesse
akira vor 15 Jahren
1