首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell解析本地HTML文件

Powershell解析本地HTML文件
EN

Stack Overflow用户
提问于 2017-11-27 15:07:40
回答 1查看 2K关注 0票数 1

我试图在多台计算机中迭代多个HTML文件。

我的代码如下:

代码语言:javascript
运行
复制
ForEach ($system in (Get-Content C:\temp\computers.txt)) {

    $folder = "\\$system\c`$\ProgramData\Autodesk\AdLM\"
    Get-ChildItem $folder *.html  |
    Foreach-Object {
        $c = $_.BaseName
        $html = New-Object -ComObject "HTMLFile"
        $HTML.IHTMLDocument2_write($(Get-content $_.Name -Raw ))
        $para1 = $HTML.getElementById('para1') | % InnerText
        Add-Content -path c:\temp\results.csv "$c,$system,$para1"
    }
 }

我得到了以下错误:

代码语言:javascript
运行
复制
New-Object : Cannot find parameter Raw
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-27 15:29:50

您可以使用对象来执行您希望HTMLFile COM对象做的事情。HTMLFile并不是在所有版本的Powershell中都能100%工作,所以这是一个可行的选择。

代码语言:javascript
运行
复制
ForEach ($system in (Get-Content C:\temp\computers.txt)) {
  $folder = "\\$system\c`$\ProgramData\Autodesk\AdLM\"
  Get-ChildItem $folder *.html  |
  ForEach-Object {
    $c = $_.BaseName
    $ie=New-Object -ComObject InternetExplorer.Application
    $ie.Navigate("$_")
    while ($ie.busy -eq $true) {
      Start-Sleep -Milliseconds 500
    }
    $doc=$ie.Document
    $elements=$doc.GetElementByID('para1')
    $elements.innerText | ForEach-Object { Add-Content -path c:\temp\results.csv "$c,$system,$para1" }
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47514065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档