例如:我跑任务管理器并关闭。我该如何使用批?
答案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