您可以使用以下两个脚本之一在单个新的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:
arrstrUrl[1] = "http:
arrstrUrl[2] = "http:
arrstrUrl[3] = "http:
objIE = new ActiveXObject("InternetExplorer.Application");
objIE.Navigate2(arrstrUrl[0]);
for (intLoop=1;intLoop<=intArrUBound;intLoop++)
objIE.Visible = true;
objIE = null;
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
一旦您决定使用“JavaScript”或“VB Script”,您有几个选择:
如果您的URL是静态的:
1)您可以编写"JS/VBS"脚本文件(如上所示),然后只需从批处理脚本中调用它。
从批处理脚本(或命令提示符)中,像这样调用"JS/VBS"脚本:
cscript //nologo urls.vbs
cscript //nologo urls.js
如果URL很少更改:
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)
objIE = new ActiveXObject("InternetExplorer.Application");
objIE.Navigate2(WScript.Arguments(0));
for (intLoop=1;intLoop<intArgsLength;intLoop++)
objIE.Visible = true;
objIE = null;
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
如果脚本未传入任何参数,它们将返回
%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/"
或者甚至:
cscript //nologo urls.js "bing.com" "google.com" "msn.com" "yahoo.com"
cscript //nologo urls.vbs "bing.com" "google.com" "msn.com" "yahoo.com"
如果出于某些原因,您想要使用“wscript”来运行这些脚本,请记得使用“start /w”,以便退出代码(%errorlevel%)将返回到批处理脚本中:
start /w "" wscript //nologo urls.js "url1" "url2" ...
start /w "" wscript //nologo urls.vbs "url1" "url2" ...
编辑: 2016年9月21日
有人评论说我的解决方案太复杂了。我不同意。你可以选择JavaScript
解决方案或者VB脚本
解决方案(不要两个都选),每个只有大约10行实际代码(如果你删除错误检查/报告,会更短),再加上几行初始化常量和变量。
一旦你决定使用哪个(JS或VB),你只需要写一个脚本,然后从batch
中调用该脚本,并传递URLs
参数,任何时候都可以使用,例如:
cscript //nologo urls.vbs "bing.com" "google.com" "msn.com" "yahoo.com"
我写这篇答案是因为其他所有的答案都只适合某些人,对于其他人来说则无法使用。这取决于以下方面:
- 当前 Internet Explorer 的“在新标签页中打开弹出窗口”、“在当前/新窗口/标签页中打开”等设置。假设您已经将这些设置调整为适合一般浏览的状态,大多数人会发现不希望为了让脚本工作而反复更改这些设置。
- 它们的行为(可能)会因为在“新”链接打开之前是否已经打开了 IE 窗口而产生不一致。如果已经打开了 IE 窗口(也许有很多打开的选项卡),那么所有新的选项卡也将被添加到那里。这可能不是你想要的。
我提供的解决方案不会有这些问题,无论任何IE设置或任何现有的IE窗口,都应该表现相同。(如果我的理解有误,请告诉我,我会尝试解决。)