amista
Goto Top

per Batch automatisch PID heraussuchen und Prozesse killen

Hallo zusammen,

Suche schon vergeblich eine Möglichkeit per Skript die PID eines Prozesses heraus zu finden und diesen zum killen des Prozesses benutzen.
Der "imagename" ist bekannt. Hab "eigentlich" nur das Problem den PID Wert in eine Variable zu speichern und diese dann beim taskkill aufzurufen.
Derzeit sieht es so aus, bin aber offen für jegliche Lösungen

set outo=%tasklist /FI "imagename eq prozess.exe" /FO LIST | grep -n 2 | cut -c 20-25%


Umgebung:
Windows Server 2003 std.

Vielen Dank im Voraus

mfg
amista

Content-Key: 91538

Url: https://administrator.de/contentid/91538

Printed on: April 25, 2024 at 17:04 o'clock

Member: Natureshadow
Natureshadow Jul 08, 2008 at 13:12:52 (UTC)
Goto Top
Erstmal danke für die Info, dass es im Windows Server grep und cut gibt - wahrscheinlich noch original GNU-Versionen face-big-smile ...

Damit bist du ja schon ein ganze Stück weit, ich hätte alternativ das hier im Angebot: http://www.beyondlogic.org/solutions/processutil/processutil.htm

Grüße,
Nik
Member: amista
amista Jul 08, 2008 at 13:38:57 (UTC)
Goto Top
Hab mir einfach die UnixUtl runtergeladen un in die Umgebung eingebunden.
geht auch ganz ok, bis auf die Geschichte mit den Variablen deklarationen face-sad.
Iss halt keine shell.

http://sourceforge.net/projects/unxutils

Vielen Dank auf jeden Fall für den Tipp, könnte mein Problem ganz unkompliziert lösen.
Member: Biber
Biber Jul 08, 2008 at 17:42:58 (UTC)
Goto Top
Moin amista,

willkommen im Forum.

Nu' lass uns aber hier wegen so einem Firlefanz keine Tool-Materialschlachten anfangen.

Sowohl die SubString-Ausschneide-Funktionalität des CUT-Utilities wie auch das zeilenweise Filtern des Grep bringt die CMD.exe mit.
Brauchst Du aber beides nicht in diesem Fall.
CMD-prompt-Demo:
>for /f "delims=, tokens=2" %i in ('tasklist /FO csv /FI "imagename eq outlook.exe"') do @echo PID %~i  

Batch-Version:
@echo off & setlocal
....
for /f "delims=, tokens=2" %%i in ('tasklist /FO csv /FI "imagename eq outlook.exe"') do Set PID=%%~i  
...
Echo Pid To Kill: %PID%
...

Und eigentlich brauchst Du auch die PID garnienicht, denn Du kannst auch direkt das TaskKill-Utility aufrufen mit einem Imagenamen. Siehe TaskKill /?.

Grüße
Biber
Member: Natureshadow
Natureshadow Jul 08, 2008 at 18:57:03 (UTC)
Goto Top
Ich esse niemals Shells :-P

Danke für den Link!
Member: Natureshadow
Natureshadow Jul 08, 2008 at 19:01:23 (UTC)
Goto Top
Sehr schön, danke für den Exkurs im Batch-Scripting!

-nik
Member: amista
amista Jul 11, 2008 at 05:45:06 (UTC)
Goto Top
Vielen Dank für den netten Empfang Biber,

bin derzeit leider mehr oder weniger mit der shell vertraut als mit den von Windows mitgelieferten Möglichkeiten. Deine Scripts helfen mir aber sehr weiter. Bin auch kein Fan von vielen Tools, wenn es nicht unbedingt notwendig ist.

mfg
amista