关闭在 运行 批处理文件时弹出的 window

Closing a window which pops up while running batch file

有一个我正在尝试自动化的应用程序构建过程。为此,我写了一个 java 文件,每 24 小时 运行s。 从这里调用一个批处理文件,运行 每次调用时都会构建应用程序。

我 运行 遇到了一个小问题,当构建由于文件不完整或无效而失败时,会弹出 window 提示我查看日志。 由于我还没有编写构建文件,所以我不太确定它是从哪里创建的。我想知道我是否可以在 bat 文件的进程 运行 中关闭此 window。

使用 taskkill 可能可行,但您必须设计一个过滤器,理想情况下 匹配显示 window 和从不 匹配任何其他进程。类似于:

taskkill /im program.exe

或者也许:

taskkill /fi "windowtitle eq title*"

您可能还想包含 /f 标志以强制终止。

您还必须尝试确保 taskkill 命令不会 运行 太快并且在创建弹出窗口 window 之前。您可以尝试查询是否存在这样的 process/window;你最好的选择可能是 wmic。也许:

@echo off
setlocal enabledelayedexpansion

set title=Notepad
set pid=
for /f %%i in ('wmic process where "caption like \"%%!title!%%\"" get processid^| findstr /r [0-9]') do @set pid=%%i
if "!pid!" neq "" taskkill /f /pid !pid!

不能保证这会一直有效,但这可能是您能做的最好的了。