从命令行仅杀死一次 chrome 实例

kill only once instance of chrome from command line

我有一个批处理文件,可以在 Chrome 中打开运行特定功能的网页。

start http://www.example.com/cgi/myprogram.exe

这个进程运行的很快,然后我想自动关闭浏览器window。我不想使用 taskkill /IM chrome.exe 因为 Chrome 在 "chrome.exe" 下有很多服务 运行 而我只想杀死一个显示在任务管理器的应用程序标签上,而不是进程标签上。

这可能吗?

要终止新标签页,您可以使用:

@echo off
setlocal EnableDelayedExpansion
set "newPIDlist="
set "oldPIDlist=p"
::find old PIDs
for /f "TOKENS=1" %%a in ('wmic PROCESS where "Name='chrome.exe'" get ProcessID ^| findstr [0-9]') do (set "oldPIDlist=!oldPIDlist!%%ap")
::start your site here
start http://www.example.com/cgi/myprogram.exe
::find new PIDs
for /f "TOKENS=1" %%a in ('wmic PROCESS where "Name='chrome.exe'" get ProcessID ^| findstr [0-9]') do (
if "!oldPIDlist:p%%ap=zz!"=="%oldPIDlist%" (set "newPIDlist=/PID %%a !newPIDlist!")
)
echo %newPIDlist%
::wait for page to load
timeout /t 5 /nobreak >nul
taskkill /f %newPIDlist% /T > NUL 2>&1

但是请注意,这不会关闭选项卡,它只会终止选项卡的进程,导致弹出错误消息。正如所讨论的 here,从命令行关闭单个 google chrome 选项卡是不可能的。