我正在尝试制作一个批处理文件:
除了使用下面显示的批处理文件的第 4 步之外,我已经完成了所有操作。
cd "C:\Program Files\internet explorer"
start "CloseMe" iexplore.exe "file://C:\ProgramData\Schneider Electric\Citect SCADA 2016\User\1173051_SM_STP\Files\Stony Mountain Institute Lift Station.html"
TIMEOUT 3 & REM Waits 3
TASKKILL /IM iexplore.exe /FI "WINDOWTITLE eq CloseMe - Internet Explorer"
exit
如果我注释掉 exit 命令并跳过第 5 步,我可以看到我收到的错误消息。这是信息:没有任务在指定条件下运行。
我运行了这个命令(感谢 aschipfl)& 看起来我的窗口标题没有正确设置为 CloseMe。
C:\ProgramData\Schneider Electric\Citect SCADA 2016\User\1173051_SM_STP\Files>tasklist /FI "IMAGENAME eq iexplore.exe" /v
Image Name PID Session Name Session# Mem Usage Status User Name CPU Time Window Title
========================= ======== ================ =========== ============ =============== ================================================== ============ ========================================================================
iexplore.exe 18076 Console 1 36,300 K Running STONY-STP\Operator 0:00:00 MultiSmart - Internet Explorer
iexplore.exe 15864 Console 1 40,448 K Running STONY-STP\Operator 0:00:00 N/A
iexplore.exe 18072 Console 1 155,600 K Running STONY-STP\Operator 0:00:06 N/A
C:\ProgramData\Schneider Electric\Citect SCADA 2016\User\1173051_SM_STP\Files>
我在两个地方将窗口标题设置为 CloseMe。
<title>CloseMe</title>
<BODY onLoad="popup('http://192.168.0.10/config.htm', 'Stony Mountain Institute Lift Station')">
<SCRIPT TYPE="text/javascript">
function popup(mylink, windowname) {
if (! window.focus)return true;
var href;
if (typeof(mylink) == 'string') href=mylink;
else href=mylink.href;
window.open(href, windowname, 'width=800,height=480,scrollbars=no');
//self.close();
return false;
}
</SCRIPT>
最佳答案
Internet Explorer 从内部当前事件的选项卡的标题派生其主窗口标题。
所以你会看到 Window Title
在任务列表的输出中,基于当前在 Internet Explorer 中处于事件状态的选项卡的标题。
从 Internet Explorer 7 开始,这是第一个带标签浏览的版本,不可能杀死 的实例。 iexplorer.exe 不影响其他标签。单个 iexplorer.exe 实例可以托管多个窗口或选项卡,因此杀死该实例将破坏它托管的所有选项卡或页面。
因此,让我们假设您想要的标签为 CloseMe
恰好是事件选项卡,因此可以通过 taskkill
找到它和 tasklist
,然后 TASKKILL /IM iexplore.exe /FI "WINDOWTITLE eq CloseMe - Internet Explorer"
向iexplore.exe
的主窗口发送终止信号
在默认配置中,Internet Explorer 总是询问您是要关闭当前选项卡还是关闭所有选项卡,因此用户可以选择仅关闭当前选项卡。但这需要用户的交互,而且可能不是您最初想要的。
另一种很常见的可能性是 Internet Explorer 配置为始终不询问就关闭所有选项卡。这本质上等同于杀死 Internet Explorer 的所有实例,因此通过 WINDOWTITLE
过滤没有意义。在 taskkill
.您可以使用 TASKKILL /IM iexplore.exe
具有相同的效果,但成功率为 100%。
为此,您需要一个实用程序来发送 CLOSE
消息到所需的窗口只是关闭特定的窗口而不是整个过程。
Windows 没有这样做的内置工具,但如果您可以使用第三方工具,那么 NirCmd是你所需要的全部。nircmdc.exe win child process "iexplore.exe" child class "Frame Tab" close ititle "CloseMe"
在带有 Internet Explorer 11 的 Windows 7 x64 上测试
关于batch-file - 批处理文件 - TASKKILL/FI "WINDOW TITLE ..."不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51253085/