【发布时间】:2021-10-22 10:02:05
【问题描述】:
我有 4 个批处理文件。 master.bat 启动所有其他 3 个批处理文件。
master.bat
@ECHO OFF
TITLE "MasterBatch"
start "mainJS" "mainJS.bat"
timeout /t 1
start "firefoxBatch" "firefoxStart.bat"
timeout /t 1
start "browserCheckBatch" "browserCheck.bat"
timeout /t 1
ECHO "4"
mainJS.bat 文件启动 main.js 文件,即 node.js 文件
mainJS.bat
@ECHO OFF
node main.js
browserCheck.bat 文件在 firefox 终止时终止所有其他批处理文件。
browserCheck.bat
@ECHO OFF
timeout /t 1
:LOOP
tasklist | find /i "firefox.exe" >nul 2>&1
IF errorlevel 1 (
GOTO CONTINUE
) ELSE (
ECHO firefox still running
timeout /T 5 /Nobreak
GOTO LOOP
)
:CONTINUE
ECHO firefox closed
taskkill /F /FI "WINDOWTITLE eq mainJS"
ECHO %mainJSTitle%
taskkill /F /FI "WINDOWTITLE eq MasterBatch"
taskkill /F /FI "WINDOWTITLE eq firefoxBatch"
但问题是 browsercheck.bat 不会终止 mainJS 批处理文件。我已经调查了这个问题,窗口自动将我的 mainJS 批处理文件窗口标题重命名为 mainJS - mainJS.bat,这似乎使我的 browsercheck.bat 无法关闭 mainJS.bat 文件。其他批处理文件不会发生这种情况。我该怎么办?
【问题讨论】:
-
taskkill /FI "WindowTitle eq mainJS*"?
标签: windows batch-file cmd taskkill