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-Key: 103206

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

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

Member: Hannes-Schurig
Hannes-Schurig Dec 03, 2008 at 10:12:21 (UTC)
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.
Member: dog
dog Dec 03, 2008 at 10:28:54 (UTC)
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
Member: thielem
thielem Dec 03, 2008 at 10:41:21 (UTC)
Goto Top
Hi,

probiere doch mal bitte das:

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

Viele Grüße
MT
Member: besenwesen
besenwesen Dec 03, 2008 at 10:48:50 (UTC)
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.
Member: Hannes-Schurig
Hannes-Schurig Dec 03, 2008 at 10:50:41 (UTC)
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.
Member: besenwesen
besenwesen Dec 03, 2008 at 11:55:48 (UTC)
Goto Top
hey super, rennt.

Vielen Dank an euch!