Esta duda se puede solucionar de diferentes maneras, pero en este caso te damos la que para nosotros es la respuesta más completa.
Solución:
Pruebe esto en su archivo por lotes:
@echo off
start /d "C:Program FilesInternet Explorer" IEXPLORE.EXE www.google.com
start /d "C:Program FilesInternet Explorer" IEXPLORE.EXE www.yahoo.com
Puede usar cualquiera de estos dos scripts para abrir las URL en pestañas separadas en una (única) nueva ventana de IE. Puede llamar a cualquiera de estos scripts desde su script por lotes (o en el símbolo del sistema):
JavaScript
Cree un archivo con un nombre como: “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;
Script de VB
Cree un archivo con un nombre como: "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
Una vez que decidas "JavaScript" o "VB Script", tienes algunas opciones:
Si sus URL son static:
1) Podrías escribir el "JS / VBS" archivo de script (arriba) y luego simplemente llámelo desde un script por lotes.
Desde dentro del script por lotes (o símbolo del sistema), llame al "JS / VBS" guión como este:
cscript //nologo urls.vbs
cscript //nologo urls.js
Si las URL cambian con poca frecuencia:
2) Puede hacer que el script por lotes escriba el "JS / VBS" script sobre la marcha y luego llamarlo.
Si las URL pueden ser diferentes cada vez:
3) Utilice el "JS / VBS" scripts (abajo) y pase las URL de las páginas para abrir como argumentos de línea de comando:
JavaScript
Cree un archivo con un nombre como: "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
Script de VB
Cree un archivo con un nombre como: "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
Si se llama al script sin ningún parámetro, estos regresarán %errorlevel%=1
, de lo contrario volverán %errorlevel%=0
. No se realiza ninguna comprobación con respecto a la "validez" o "disponibilidad" de ninguna de las URL.
Desde dentro del script por lotes (o símbolo del sistema), llame al "JS / VBS" guión como este:
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/"
O incluso:
cscript //nologo urls.js "bing.com" "google.com" "msn.com" "yahoo.com"
cscript //nologo urls.vbs "bing.com" "google.com" "msn.com" "yahoo.com"
Si por alguna razón, desea ejecutarlos con "wscript" en su lugar, recuerde usar "start / w" para que los códigos de salida (% errorlevel%) se devuelvan a su secuencia de comandos por lotes:
start /w "" wscript //nologo urls.js "url1" "url2" ...
start /w "" wscript //nologo urls.vbs "url1" "url2" ...
Editar: 21 de septiembre de 2016
Se ha comentado que mi solución es demasiado complicada. Estoy en desacuerdo. Tu eliges el JavaScript
solución, o los VB Script
solución (no ambos), y cada uno tiene solo unas 10 líneas de código real (menos si elimina la verificación / informe de errores), más algunas líneas para inicializar constantes y variables.
Una vez que haya decidido (JS o VB), escriba ese script una vezy luego llamas a ese script desde batch
, pasando el URLs
, en cualquier momento que desee usarlo, como:
cscript //nologo urls.vbs "bing.com" "google.com" "msn.com" "yahoo.com"
La razón por la que escribí esta respuesta es porque todas las demás respuestas, que funcionan para algunas personas, no funcionarán para otras, dependiendo de:
- La configuración actual de Internet Explorer para "abrir ventanas emergentes en una nueva pestaña", "abrir en una ventana / pestaña actual / nueva", etc. Suponiendo que ya tiene esa configuración configurada como le gusta para la navegación general, la mayoría de la gente la encontrará. No es deseable tener que cambiar esas configuraciones de un lado a otro para que el guión funcione.
- Su comportamiento es (puede ser) inconsistente dependiendo de si ya había una ventana de IE abierta antes de que se abrieran los "nuevos" enlaces. Si ya hubiera una ventana de IE (quizás con muchas pestañas abiertas) ya abierta, todas las pestañas nuevas también se agregarían allí. Puede que esto no sea lo deseado.
La solución que proporcioné no tiene estos problemas y debería comportarse de la misma manera, independientemente de la configuración de IE o de cualquier Windows de IE existente. (Por favor, avíseme si me equivoco al respecto e intentaré solucionarlo).
Gracias por el dato Rodger.
Para mí funcionó de la siguiente manera:
@echo off
start /d "" IEXPLORE.EXE www.google.com
start /d "" IEXPLORE.EXE www.yahoo.com
Con la configuración de Internet Explorer 8:
- siempre abre ventanas emergentes en una nueva pestaña
- una nueva pestaña en la ventana actual
[email protected]