Вы можете использовать любой из этих двух скриптов, чтобы открывать 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
Создайте файл с таким именем, как: "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
Создайте файл с таким именем, как: "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. (Пожалуйста, дайте мне знать, если я ошибаюсь в этом, и я постараюсь исправить это.)
person
Kevin Fegan
schedule
06.08.2014