问题描述
我必须在 Chrome 浏览器中启动一个带有批处理文件的 Web 应用程序,其中包含一个预定义的进程 ID,以便我稍后可以使用另一个批处理文件终止该特定的 Chrome 窗口。有什么办法吗?
解决方法
通过在 CMD 控制台输入这个命令,你可以看到如何创建一个进程:
wmic process call create /?
这也是:如何终止进程:
wmic process call terminate /?
所以,你可以试试这个批处理文件:
@echo off
set "targetfile=C:\Program Files\Google\Chrome\Application\chrome.exe"
set targetfile=%targetfile:\=\\%
@for /f "tokens=2 delims==; " %%# in ('wmic PROCESS CALL CREATE "%targetfile%" ^|findstr /I "ProcessId"') do set "PID=%%#"
echo The Process is created with PID=%PID%
pause
wmic process where ProcessId="%PID%" call terminate
REM Taskkill /PID %PID%
pause
您可以创建一个名为::Create_Process <TargetFile> <PID>
的子程序,以便像这样调用它:
@echo off
Title Start chrome process with a defined process ID
set "TargetFile=C:\Program Files\Google\Chrome\Application\chrome.exe"
Call :Create_Process "%TargetFile%" PID
echo The Process is created with PID=%PID%
pause
wmic process where ProcessId="%PID%" Call Terminate
REM Taskkill /PID %PID%
pause
Exit
::-----------------------------------------------------------------
:Create_Process <TargetFile> <PID>
Set "TargetFile=%~1"
Set TargetFile=%TargetFile:\=\\%
@for /f "tokens=2 delims==; " %%# in (
'wmic PROCESS CALL CREATE "%TargetFile%" ^|findstr /I "ProcessId"'
) do set "%2=%%#"
Exit /B
::-----------------------------------------------------------------