2017-02-12 10 views
1

Вот командный код:для Windows 10 IE 11 PowerShell объект

<# : 
    @echo off 
    powershell /nop /ex bypass^ 
    "&{[ScriptBlock]::Create((gc '%~f0') -join [Char]10).Invoke()}" 
    exit /b 
#> 
$ie = new-object -comobject InternetExplorer.Application 
$ie.Visible = $false 
$ie.Silent = $true 
while($ie.Busy -ne $false) {start-sleep -m 100} 
$ie.Navigate2("https://www.google.ru/", 4) 
while($ie.Busy -ne $false) {start-sleep -m 100} 
while($ie.ReadyState -ne 4) {start-sleep -m 100} 
start-sleep -m 500 
$ie.Stop() 
echo $ie.Document.body.innerHTML > ".\html.txt" 
$ie.Quit() 

Этот код прекрасно в Windows 7 x64 работает, Windows 8 x64, но не работает в Windows 10 x64. Браузер Microsoft EDGE не используется, в качестве браузера по умолчанию выбран IE 11. Я пытался запустить bat-файл как администратор и как invoker. Что не так? Спасибо за вашу помощь!

+0

Что должен делать сценарий в любом случае? Что происходит и что должно произойти? – vonPryz

+0

Если все, что вы хотите сделать, это сбор HTML-страницы веб-страницы, настольный веб-браузер далеко не оптимальный. – alroc

+0

, когда я запускаю bat-файл с этим кодом, он создает новый файл с именем «html.txt» с html-кодом страницы. Другие способы получить тот же результат не интересны для меня. Один вопрос - почему этот код не работает в Win 10? Что я должен проверить/исправить, чтобы получить нужный результат? – Vazz

ответ

0

Если вам нужно только получить содержимое HTML-страницы на веб-странице, не используйте веб-браузер вообще. Вместо этого используйте invoke-webrequest и получите доступ к свойству content результирующего объекта.

invoke-webrequest -Uri http://www.google.ru/ | select-object -property content