Вы можете использовать любой из этих двух сценариев, чтобы открывать URL-адреса в отдельных вкладках в (одном) новом окне IE. Вы можете вызвать любой из этих сценариев из своего пакетного сценария (или из командной строки):
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;
VB Script
Создайте файл с именем, например: "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) {
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;
VB Script
Создайте файл с именем, например: "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" ...
Редактировать: 21-сен-2016
Был комментарий, что мое решение слишком сложное. Я не согласен. Вы выбираете решение JavaScript
, или решение VB Script
(не оба), и каждая содержит всего около 10 строк фактического кода (меньше, если исключить проверку ошибок / отчетности), плюс несколько строк для инициализации констант и переменных.
Как только вы решили (JS или VB), вы пишете этот сценарий один раз , а затем вызываете этот сценарий из batch
, передавая URLs
, в любое время, когда вы хотите его использовать, как:
cscript //nologo urls.vbs "bing.com" "google.com" "msn.com" "yahoo.com"
Причина, по которой я написал этот ответ, заключается в том, что все остальные ответы, которые работают для некоторых людей, не будут работать для других, в зависимости от:
- Текущие настройки Internet Explorer для «открытия всплывающих окон в новой вкладке», «открытия в текущем / новом окне / вкладке» и т. Д. ... Если у вас уже есть эти настройки, которые вам нравятся для общего просмотра, большинство людей было бы нежелательно менять эти настройки взад и вперед, чтобы скрипт работал.
- Их поведение (может быть) несовместимо в зависимости от того, было ли уже открыто окно IE до открытия «новых» ссылок. Если бы уже было окно IE (возможно, со многими открытыми вкладками), то все новые вкладки также были бы добавлены туда. Это может быть нежелательно.
Решение, которое я предоставил, не имеет этих проблем и должно вести себя одинаково, независимо от настроек IE или любых существующих IE Windows. (Пожалуйста, дайте мне знать, если я ошибаюсь по этому поводу, и я постараюсь это исправить.)