在 PowerShell 库中您会发现Read-HtmlTablecmdlet 基于IHTMLDocument2接口:
安装
Install-Script -Name Read-HtmlTable
Usage:
$uri = "https://winreleaseinfoprod.blob.core.windows.net/winreleaseinfoprod/en-US.html"
Read-HtmlTable $Uri -Table 0 |Format-Table # or: |Export-Csv .\output.csv
Results:
Version Servicing option Availability date OS build Latest revision date End of service: Home, Pro, Pro Education, Pro for Workstations and IoT Core End of service: Enterprise, Education and IoT Enterprise
------- ---------------- ----------------- -------- -------------------- --------------------------------------------------------------------------- --------------------------------------------------------
20H2 Semi-Annual Channel 2020-10-20 19042.928 2021-04-13 2022-05-10 2023-05-09
2004 Semi-Annual Channel 2020-05-27 19041.928 2021-04-13 2021-12-14 2021-12-14
1909 Semi-Annual Channel 2019-11-12 18363.1500 2021-04-13 2021-05-11 2022-05-10
1809 Semi-Annual Channel 2019-03-28 17763.1879 2021-04-13 End of service 2021-05-11
1809 Semi-Annual Channel (Targeted) 2018-11-13 17763.1879 2021-04-13 End of service 2021-05-11
1803 Semi-Annual Channel 2018-07-10 17134.2145 2021-04-13 End of service 2021-05-11
1803 Semi-Annual Channel (Targeted) 2018-04-30 17134.2145 2021-04-13 End of service 2021-05-11
参数
-InputObject <string>
包含 html 表的 html 内容(字符串)。
如果字符串少于 2048 个字符并且包含有效的 uri 协议,则下载内容
从相关位置。
-uri <Uri>
引用包含 html 表的 html 内容的 uri 位置
-Header <string[]>
为导入的字符串指定备用列标题行。列标题决定属性
创建的对象的名称ConvertFrom-Csv
.
输入以逗号分隔的列表形式的列标题。不要将标题字符串括在引号中。
将每个列标题用单引号引起来。
如果输入的列标题少于数据列,则剩余的数据列将被丢弃。
如果您输入的列标题多于数据列,则会创建附加列标题
具有空数据列。
A $Null
而不是列名称,将跨越相应的列与前一列。
注意:要选择特定列或跳过任何数据(或标题)行,请使用Select-Object
cmdlet
-TableIndex <int[]>
指定应从 html 内容中选择哪些表(其中 0 指第一个表)。
默认情况下,所有表格均从内容中提取。
注意:如果有多个表格,则应统一标题,以便正确输出或显示每个表格。
(see: https://github.com/PowerShell/PowerShell/issues/13906)
-Separator <string>
指定用于连接跨多个列的标题的字符。
default:空格字符
-Delimiter <string>
指定用于连接跨多行的标题的字符。
default:操作系统使用的换行符
-NoTrim
默认情况下,所有标题和数据文本都会被修剪,要禁用修剪,请使用 -NoTrim 参数。