我正在尝试制作批处理文件:
我已经得到了除步骤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
Run Code Online (Sandbox Code Playgroud)
如果我注释掉退出命令并跳过第5步,我可以看到我收到的错误消息.这是INFO:没有使用指定条件运行的任务.
我运行了这个命令(感谢aschipfl),看起来我的Window Title没有被正确设置为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>
Run Code Online (Sandbox Code Playgroud)
我在两个地方将Window Title设置为CloseMe.
在.html文件中(见下文)
<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>
Run Code Online (Sandbox Code Playgroud)Internet Explorer 在内部从当前处于活动状态的选项卡标题派生出其主窗口标题。
因此,您将在任务列表的输出中看到的内容Window Title基于 Internet Explorer 中当前活动的选项卡的标题。
从第一个支持选项卡式浏览的 Internet Explorer 7 开始,不可能在不影响其他选项卡的情况下杀死iexplorer.exe的实例。单个iexplorer.exe实例可以托管多个窗口或选项卡,因此终止该实例将破坏它托管的所有选项卡或页面。
因此,我们假设您想要的标题为 的选项卡恰好是活动选项卡,因此可以通过和CloseMe找到它,然后向主窗口发送终止信号taskkilltasklistTASKKILL /IM iexplore.exe /FI "WINDOWTITLE eq CloseMe - Internet Explorer"iexplore.exe
在默认配置中,Internet Explorer 始终询问您是否要关闭当前选项卡或关闭所有选项卡,因此用户可以选择仅关闭当前选项卡。但这需要用户的交互,而且可能不是您最初的意图。
另一种很常见的可能性是 Internet Explorer 配置为始终关闭所有选项卡而不询问。这本质上相当于杀死 Internet Explorer 的所有实例,因此没有必要按WINDOWTITLEin进行过滤taskkill。你可以直接使用TASKKILL /IM iexplore.exe,效果相同,但成功率100%。
为此,您需要一个实用程序将CLOSE消息发送到所需的窗口,以仅关闭该特定窗口而不是整个过程。
Windows 没有用于执行此操作的内置工具,但如果您可以使用第三方工具,那么NirCmd就是您所需要的。
nircmdc.exe win child process "iexplore.exe" child class "Frame Tab" close ititle "CloseMe"
在 Windows 7 x64 上使用 Internet Explorer 11 进行测试