
例如:我跑步工作管理員然後它就關閉了。我該怎麼做批次?
答案1
我能想到透過批次腳本執行此操作的唯一方法是讓 .bat 在背景運行,不斷循環並檢查正在運行的特定應用程式進程映像名稱。
但是a)我不明白為什麼你想要自動終止一個進程而不是先阻止它運行
b)我不明白為什麼你想用批次腳本來做到這一點。批次腳本不會自動回應 Windows 事件,唯一要做的就是拼湊一個無限運行的循環來檢查某些內容是否正在運行。
c)批量做事就像用錘子建造一座紙牌屋,我喜歡它,所以無論如何,這裡有一個答案,你老人家:
@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
但就我個人而言,我更喜歡這個腳本
@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