前提
请注意,我将这些批处理文件转换为exe,因此我运行no-ui(不可见)exe!
我批量创建了一个简单的 goto 循环来继续杀死 WhatsApp,然后我创建了另一个批处理来停止该进程并能够再次重新使用 WhatsApp。
事实上,要正确停止 goto 循环,我需要终止 cmd.exe 和 conhost.exe,并且通过这样做,我将终止正在运行的所有其他 goto 循环,或者例如我正在运行的 cmd 会话目前正在使用。
例如
如果我有一个在后台运行的批处理副本,通过解锁 WhatsApp(因此通过杀死 cmd.exe 和 conhost.exe)来锁定另一个应用程序(例如 Telegram),我也将解锁 Telegram。
你知道有什么解决办法吗?我正在考虑特定的 PID,但我不知道如何收集它们,因为它们每次都是随意生成的。
lockWS.bat
@echo off
:loop
taskkill /f /im WhatsApp.exe
goto loop
解锁WS.bat
@echo off
taskkill /f /im killWS.exe
taskkill /f /im cmd.exe
taskkill /f /im conhost.exe
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
解决方法是使用文件来获取要关闭的应用程序的参数,并在运行时根据需要更改文件内容。
这将是您的循环脚本,您只需运行一次:
@echo off
:loop
setlocal enabledelayedexpansion
rem Set your filename here, no need to be .txt
set "file=instructions.txt"
rem Read the file, split the values and run the command.
for /f "delims=" %%a in (%file%) do (
for %%b in (%%a) do (
taskkill /f /im %%b.exe
)
)
rem wait 3 seconds before running again.
timeout /t 3 /nobreak >nul
goto :loop
这是您每次想要更改应关闭的应用程序时运行的脚本:
rem Set the charset to UTF-8
chcp 65001 > nul
rem write the parameters to the file.
echo whatsapp,telegram > instructions.txt
注1:如果需要,请指定“instructions.txt”路径。
注 2:上面的脚本可以使用逗号作为分隔符,但如果您愿意,也可以使用其他分隔符。
在这种方法中,您不需要每次需要更改要关闭的应用程序时杀死 cmd.exe,您只需要更改指令文件,loop.bat 就会获取新参数。