
Beispiel: Ich laufetaskmgr.exeund es schließt sich. Wie mache ich das mitCharge?
Antwort1
Die einzige Möglichkeit, die mir für die Erledigung dieser Aufgabe per Batch-Skripting einfällt, besteht darin, eine BAT-Datei im Hintergrund laufen zu lassen, die in einer Endlosschleife läuft und nach dem Namen eines bestimmten laufenden Anwendungsprozess-Images sucht.
Aber a) Ich kann nicht verstehen, warum Sie einen Prozess automatisch beenden möchten, anstatt ihn von vornherein zu stoppen.
b) Ich verstehe nicht, warum Sie das mit einem Batch-Skript machen wollen. Batch-Skripte reagieren nicht automatisch auf Windows-Ereignisse. Das Einzige, was man tun kann, ist, eine Endlosschleife zusammenzubasteln, die prüft, ob etwas läuft.
c) Dinge stapelweise zu erledigen ist wie ein Kartenhaus mit einem Hammer zu bauen und ich liebe es, also hier trotzdem eine Antwort, du alter Mensch:
@ECHO OFF
:loop
set "app=TASKMGR.exe"
::Set Output of tasklist command to variable %TL%
FOR /F "tokens=* USEBACKQ" %%A IN (`TASKLIST /FI "IMAGENAME EQ %app%"`) DO (SET "TL=%%A")
::check for "info:no( tasks are running which...)"
::any other output, task exists, so kill it
IF "%TL:~0,8%" NEQ "INFO: No" (TASKKILL /FI "IMAGENAME EQ %app%")
::beware of velociraptors
goto :loop
Persönlich bevorzuge ich jedoch dieses Skript
@ECHO OFF
MODE CON: COLS=80 LINES=2
set "A=*** "
:loop
set "app=TASKMGR.exe"
FOR /F "tokens=* USEBACKQ" %%A IN (`TASKLIST /FI "IMAGENAME EQ %app%"`) DO (SET "TL=%%A")
IF "%TL:~0,8%" NEQ "INFO: No" (TASKKILL /FI "IMAGENAME EQ %app%")
SET "A= %A:~0,15%"
echo (@)@):::::::D%a:~1,15%%APP%
if "%A%" equ " ***" set "A=*** "
goto :loop