【发布时间】:2018-08-14 20:57:17
【问题描述】:
这里是批处理代码:
<# :
@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-file .. 有什么问题?感谢您的帮助!
【问题讨论】:
-
脚本到底应该做什么?会发生什么,应该发生什么?
-
如果您只想收集网页的 HTML,那么桌面网络浏览器远非最佳方法。
-
当我使用此代码运行 bat 文件时,它会使用页面的 html 代码创建名为“html.txt”的新文件。获得相同结果的其他方法对我来说并不有趣。一个问题 - 为什么这段代码在 Win 10 中不起作用?我应该检查/修复什么以获得所需的结果?
-
问题是本地化的——我买了两台新电脑,预装了office 365,卸载office后出现这个bug。第二台计算机可以正常使用此代码。似乎office卸载程序损坏了IE。有任何想法吗?可能我应该重新安装IE?我怎样才能做到这一点?我不需要 Office 365。
标签: powershell windows-10 internet-explorer-11