【问题标题】:taskkill not working: it says there are no matching process runningtaskkill 不工作:它说没有匹配的进程正在运行
【发布时间】: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


【解决方案1】:

如果我们启动一个没有Title的.cmd或.bat文件,就很难区分它的功能

我们鼓励添加标题,但有时可能会因调用方法而异

为了确保 .bat 或 .CMD 每次都会自己报告相同的标题

然后养成使用第一行之类的习惯

@ECHO OFF & Title MainJS

通常避免使用“带空格的长短语”,如果它是一个简短准确的助记符,则更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2020-01-16
    相关资源
    最近更新 更多