
Мне нужно открыть 2 окна Edge из пакетного файла (не две вкладки, а 2 окна). Я знаю, что могу запустить edge с помощью следующей команды:
start microsoft-edge:
Но если я попробую дважды, вторая команда ничего не сделает. Если я попробую с URL, я получу 2 вкладки в одном окне. Например
start microsoft-edge:http://google.com
start microsoft-edge:http://bing.com
Есть идеи, как получить 2 отдельных окна?
решение1
Может быть, это более простой способ, но я просто отправил нажатие клавиши CTRL+N для нового окна перед отправкой следующей команды запуска. Это работает для меня. (сохраните как .ps1 для powershell)
start microsoft-edge:http://google.com
$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('Google - Microsoft Edge')
Sleep 2
$wshell.SendKeys('(^(n))')
Sleep 2
start microsoft-edge:http://yahoo.com
Строку app.activate, где написано "Google - Microsoft Edge", нужно заменить на текст заголовка окна вашего первого веб-сайта. Наведение курсора на значок edge в нижней части экрана, когда открыт только этот веб-сайт, скажет вам, что это такое.
**Редактировать рабочую версию по состоянию на 08.08.2019
start microsoft-edge:http://google.com
start microsoft-edge:http://yahoo.com
$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('Google - Microsoft Edge')
Sleep 2
$wshell.SendKeys('(^(+(n)))')
решение2
Вот альтернативный метод запуска нескольких экземпляров Edge из пакетного файла. Вы можете использовать бесплатное стороннее приложение, вызываемое EdgeLaunch.exe
в вашем пакетном файле (столько раз, сколько захотите!)
EdgeLaunch.exe http://www.FirstInstance.com
EdgeLanuch.exe http://www.SecondInstance.com
etc...
http://www.emmet-gray.com/Articles/EdgeLaunch.html
P.S.: Я автор.
решение3
Запустить-процесс -FilePath msedge -ArgumentList '--new-tabhttp://www.FirstInstance.com
Запустить-процесс -FilePath msedge -ArgumentList '--new-windowhttp://www.FirstInstance.com
Вы пробовали это? Все еще работает!!
решение4
Это немного подробнее, чем ответ Joske. Не требуется SendKeys или сторонний инструмент! Просто поставьте--новое окнов начале КАЖДОЙ строки в массиве $urls. (Можно также/вместо этого использовать--новая вкладка)
# Open web apps in new tabs or windows
# Must wrap arguments in quotes because double-hyphens in PowerShell are the unary operator
# Without the quotes, you get this error: Missing expression after unary operator '--'
[String[]]$urls =
@(
'--new-window https://www.google.com'
'--new-window https://docs.microsoft.com'
'--new-window https://youtube.com'
)
foreach ($url in $urls) {
Start-Process "${env:ProgramFiles(x86)}\Microsoft\Edge\Application\msedge.exe" $url
}