总体思路:
- 记录打开网址前后的进程,将其存储在txt文件中
- 使用打开后生成的文件中PID,和之前的进行对比,找出新增PID,终止其进程
- 删除生成的中间文件
@echo off
::开启延时变量
setlocal EnableDelayedExpansion
:: 记录打开新页面前的 PID
set BeforeFile=BeforeFile.txt
:: 记录打开新页面后的 PID
set AfterFile=AfterFile.txt
tasklist /V /FI "IMAGENAME eq chrome.exe" > %BeforeFile%
start "C:\Program Files\Google\Chrome\Application\chrome.exe" "https://blog.csdn.net/m0_56208280?type=blog"
tasklist /V /FI "IMAGENAME eq chrome.exe" > %AfterFile%
::通过比较打开前后新增的 PID,获取刚才新打开页面的 PID
for /f "skip=3 tokens=2 delims= " %%i in (%AfterFile%) do (
set flag=0
:: skip=3 跳过前三行
for /f "skip=3 tokens=2 delims= " %%j in (%BeforeFile%) do (
::不是新增的 PID 就改变 flag 的值
if %%i equ %%j (
set flag=1
echo 比较值 %%i 找到对应 PID
break
)
)
::flag值改变则为新增 PID
if !flag! == 0 (
echo %%i 进程将结束
taskkill /F /PID %%i
)
)
::删除文件
del %BeforeFile%
del %AfterFile%
pause