The*_*ker 21 internet-explorer batch-file
我想要一个批处理文件来启动两个单独的程序然后关闭命令行窗口.实际上,为了澄清,我正在使用两个不同的URL启动Internet Explorer.
到目前为止,我有这样的事情:
start "~\iexplore.exe" "url1"
start "~\iexplore.exe" "url2"
Run Code Online (Sandbox Code Playgroud)
我得到的是Internet Explorer的一个实例,只加载了第二个URL.似乎第二个正在取代第二个.我似乎记得一种语法,我将加载一个新的命令行窗口并传递命令以在加载时执行,但无法找到引用.
作为问题的第二部分:什么是一个很好的参考URL,以保持您编写快速批处理文件所需的时间?
编辑:我已经标记了答案,因为它确实有效.我现在打开两个窗口,每个URL一个.(谢谢!)有趣的是,如果没有使用原始语法的/ d方法,我会根据是否打开预先存在的Internet Explorer实例得到不同的结果.
Rod*_*ley 39
在批处理文件中尝试此操作:
@echo off
start /d "C:\Program Files\Internet Explorer" IEXPLORE.EXE www.google.com
start /d "C:\Program Files\Internet Explorer" IEXPLORE.EXE www.yahoo.com
Run Code Online (Sandbox Code Playgroud)
您可以使用这两个脚本中的任何一个在(单个)新IE窗口中的单独选项卡中打开URL.您可以在批处理脚本中(或在命令提示符下)调用这些脚本中的任何一个:
JavaScript
创建一个名称为"urls.js"的文件:
var navOpenInNewWindow = 0x1;
var navOpenInNewTab = 0x800;
var navOpenInBackgroundTab = 0x1000;
var intLoop = 0;
var intArrUBound = 0;
var navFlags = navOpenInBackgroundTab;
var arrstrUrl = new Array(3);
var objIE;
intArrUBound = arrstrUrl.length;
arrstrUrl[0] = "http://bing.com/";
arrstrUrl[1] = "http://google.com/";
arrstrUrl[2] = "http://msn.com/";
arrstrUrl[3] = "http://yahoo.com/";
objIE = new ActiveXObject("InternetExplorer.Application");
objIE.Navigate2(arrstrUrl[0]);
for (intLoop=1;intLoop<=intArrUBound;intLoop++) {
objIE.Navigate2(arrstrUrl[intLoop], navFlags);
}
objIE.Visible = true;
objIE = null;
Run Code Online (Sandbox Code Playgroud)
VB脚本
创建一个名为"urls.vbs"的文件:
Option Explicit
Const navOpenInNewWindow = &h1
Const navOpenInNewTab = &h800
Const navOpenInBackgroundTab = &h1000
Dim intLoop : intLoop = 0
Dim intArrUBound : intArrUBound = 0
Dim navFlags : navFlags = navOpenInBackgroundTab
Dim arrstrUrl(3)
Dim objIE
intArrUBound = UBound(arrstrUrl)
arrstrUrl(0) = "http://bing.com/"
arrstrUrl(1) = "http://google.com/"
arrstrUrl(2) = "http://msn.com/"
arrstrUrl(3) = "http://yahoo.com/"
set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate2 arrstrUrl(0)
For intLoop = 1 to intArrUBound
objIE.Navigate2 arrstrUrl(intLoop), navFlags
Next
objIE.Visible = True
set objIE = Nothing
Run Code Online (Sandbox Code Playgroud)
一旦你决定"JavaScript"或"VB脚本",你有几个选择:
如果您的网址是静态的:
1)您可以编写"JS/VBS"脚本文件(上面),然后从批处理脚本中调用它.
在批处理脚本(或命令提示符)中,调用"JS/VBS"脚本,如下所示:
cscript //nologo urls.vbs
cscript //nologo urls.js
Run Code Online (Sandbox Code Playgroud)
如果网址不经常更改:
2)您可以让批处理脚本动态编写"JS/VBS"脚本然后调用它.
如果每次URL可能不同:
3)使用"JS/VBS"脚本(如下所示)并传递页面的URL以作为命令行参数打开:
JavaScript
创建一个名称为"urls.js"的文件:
var navOpenInNewWindow = 0x1;
var navOpenInNewTab = 0x800;
var navOpenInBackgroundTab = 0x1000;
var intLoop = 0;
var navFlags = navOpenInBackgroundTab;
var objIE;
var intArgsLength = WScript.Arguments.Length;
if (intArgsLength == 0) {
WScript.Echo("Missing parameters");
WScript.Quit(1);
}
objIE = new ActiveXObject("InternetExplorer.Application");
objIE.Navigate2(WScript.Arguments(0));
for (intLoop=1;intLoop<intArgsLength;intLoop++) {
objIE.Navigate2(WScript.Arguments(intLoop), navFlags);
}
objIE.Visible = true;
objIE = null;
Run Code Online (Sandbox Code Playgroud)
VB脚本
创建一个名为"urls.vbs"的文件:
Option Explicit
Const navOpenInNewWindow = &h1
Const navOpenInNewTab = &h800
Const navOpenInBackgroundTab = &h1000
Dim intLoop
Dim navFlags : navFlags = navOpenInBackgroundTab
Dim objIE
If WScript.Arguments.Count = 0 Then
WScript.Echo "Missing parameters"
WScript.Quit(1)
End If
set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate2 WScript.Arguments(0)
For intLoop = 1 to (WScript.Arguments.Count-1)
objIE.Navigate2 WScript.Arguments(intLoop), navFlags
Next
objIE.Visible = True
set objIE = Nothing
Run Code Online (Sandbox Code Playgroud)
如果在没有任何参数的情况下调用脚本,则会返回这些参数%errorlevel%=1,否则它们将返回%errorlevel%=0.没有检查任何URL的"有效性"或"可用性".
在批处理脚本(或命令提示符)中,调用"JS/VBS"脚本,如下所示:
cscript //nologo urls.js "http://bing.com/" "http://google.com/" "http://msn.com/" "http://yahoo.com/"
cscript //nologo urls.vbs "http://bing.com/" "http://google.com/" "http://msn.com/" "http://yahoo.com/"
Run Code Online (Sandbox Code Playgroud)
甚至:
cscript //nologo urls.js "bing.com" "google.com" "msn.com" "yahoo.com"
cscript //nologo urls.vbs "bing.com" "google.com" "msn.com" "yahoo.com"
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因,您希望使用"wscript"来运行它们,请记住使用"start/w",以便退出代码(%errorlevel%)将返回到批处理脚本:
start /w "" wscript //nologo urls.js "url1" "url2" ...
start /w "" wscript //nologo urls.vbs "url1" "url2" ...
Run Code Online (Sandbox Code Playgroud)
有评论说我的解决方案太复杂了.我不同意.你选择的JavaScript解决方案,或将VB Script溶液(不是两个),每个大约只有10的实际代码行(较少,如果你消除错误检查/报告),加上几行来初始化常量和变量.
一旦你决定(JS或VB),你就编写了一次这个脚本,然后你可以随时调用该脚本batch,传递URLs它,如:
cscript //nologo urls.vbs "bing.com" "google.com" "msn.com" "yahoo.com"
Run Code Online (Sandbox Code Playgroud)
我写这个答案的原因是因为所有其他答案,对一些人有用,将无法为其他人工作,具体取决于:
我提供的解决方案没有这些问题,并且应该表现相同,无论任何IE设置或任何现有的IE Windows.(如果我错了,请告诉我,我会尽力解决.)
小智 5
感谢小费罗杰。
对我来说,它的工作原理如下:
@echo off
start /d "" IEXPLORE.EXE www.google.com
start /d "" IEXPLORE.EXE www.yahoo.com
Run Code Online (Sandbox Code Playgroud)
使用Internet Explorer 8中的设置:
marcelo_linhares@hotmail.com
| 归档时间: |
|
| 查看次数: |
234912 次 |
| 最近记录: |