Wie kann verhindert werden, dass eine Anwendung im Batch ausgeführt wird?

Wie kann verhindert werden, dass eine Anwendung im Batch ausgeführt wird?

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

verwandte Informationen