besenwesen
Goto Top

Prozess automatisch finden und beenden

Hallo zusammen,

nach gefuehlt endloser Zeit des googelns und Forensuche hoffe ich nun hier Hilfe zu bekommen.

Ich versuche folgende Anforderung per Batch-Datei zu loesen komme aber leider zu keinem erfolgreichen Ergebnis.

Ziel ist eine BATch-Datei die aus der aktuellen Prozessliste einen Prozess herausfilter und diesen per taskkill beendet.

Konstant ist der Name der exe-Datei. (z.B. notepad.exe)

Hier mal ein Bsp. welches ich im Netzt gefunden habe, allerdings nichts weiter tut, als eine Datei vollzumuellen mit der
korrekten PID allerdings findet das kill-statement nicht statt.

@echo off
SetLocal EnableDelayedExpansion
::Find PID of process which contains windowtitle "Google" 
Tasklist /FI "IMAGENAME eq notepad.exe" /FO "CSV" >>tmp  

::Filtering out PID of the process list
For /F "tokens=1-5* delims=," %%A in (tmp) Do (  
set Txt=%%B
Echo !Txt:^"=!>>tmp1)  
)

::Getting PID to kill
set /p PID=<tmp1


::Killing process
Taskkill /f /PID %PID%

::Delete tmp files
del tmp
del tmp1
EndLocal

Ich hoffe mir kann jmd. helfen. Danke im voraus.

Gruss
Michael

Content-ID: 103206

Url: https://administrator.de/forum/prozess-automatisch-finden-und-beenden-103206.html

Ausgedruckt am: 24.12.2024 um 18:12 Uhr

Hannes-Schurig
Hannes-Schurig 03.12.2008 um 11:12:21 Uhr
Goto Top
ich bin kein batch guru aber ich würde den fehler erstmal versuchen einzugrenzen.
und zwar echo auf on setzen, damit du schonmal eventuelle fehlermeldungen siehst.
dann zwischen deine programmzeilen an relevanten stellen pause setzen um zu verfolgen wo das programm eventuell hängt.
man kann auch mit log dateien weiterkommen in dem man ausgaben der batch sammelt (programm.bat >> log.txt 2>&1)

so, du sagst, dass das kill statement (also taskkill?) nicht stattfindet. funktioniert taskkill denn bei dir? (cmd->taskkill /?)
kannst du es manuell inner cmd mal ausprobieren. also notepad öffnen, pid nehmen und mal killen. wenn es so geht dann müsste es im script theoretisch ja auch gehen.
dog
dog 03.12.2008 um 11:28:54 Uhr
Goto Top
Wenn man das mit Batch macht kriegt man ja Kopfschmerzen face-smile

VBScript:
' Sample VBScript to kill a program  
' Author Guy Thomas http://computerperformance.co.uk/  

Dim objWMIService, objProcess, colProcess
strProcessKill = "'calc.exe'"  

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")  

Set colProcess = objWMIService.ExecQuery("Select * from Win32_Process Where Name = " & strProcessKill )  
For Each objProcess in colProcess
objProcess.Terminate()
Next

WScript.Quit

Grüße

Max
thielem
thielem 03.12.2008 um 11:41:21 Uhr
Goto Top
Hi,

probiere doch mal bitte das:

set app=notepad.exe
taskkill /IM %app%

Viele Grüße
MT
besenwesen
besenwesen 03.12.2008 um 11:48:50 Uhr
Goto Top
Zitat von @thielem:
Hi,

probiere doch mal bitte das:

set app=notepad.exe
taskkill /IM %app%

Viele Grüße
MT

leider nein. face-plain

und zu dem VB Script. ich hab leider keinen Compiler/Editor oder was auch immer auf'm rechner.
Hannes-Schurig
Hannes-Schurig 03.12.2008 um 11:50:41 Uhr
Goto Top
Zitat von @besenwesen:
> Zitat von @thielem:
> ----
> Hi,
>
> probiere doch mal bitte das:
>
> set app=notepad.exe
> taskkill /IM %app%
>
> Viele Grüße
> MT

leider nein. face-plain

und zu dem VB Script. ich hab leider keinen Compiler/Editor oder was
auch immer auf'm rechner.
.vbs scripte können einfach mit doppelklick ausgeführt und mit nem editor geschrieben werden.
besenwesen
besenwesen 03.12.2008 um 12:55:48 Uhr
Goto Top
hey super, rennt.

Vielen Dank an euch!