html - Powershell 将字符串数组传递给 ConvertTo-Html
问题描述
出于测试目的(在我应用我的大代码之前),我决定将一个字符串数组通过管道传递给 convertTo-html,希望创建某种表格来显示我的数组。
[String]$servers= @('GT544', 'HT54765', 'J4356', 'SW5654', 'JY67432')
psedit "C:\Users\karljoey.chami\Desktop\Htmltesting\Red.css"
$file = "C:\Users\karljoey.chami\Desktop\Htmltesting\Result.html"
$servers | ConvertTo-Html
-Title "Servers in a table" -CssUri "C:\Users\karljoey.chami\Desktop\Htmltesting\Red.css"
-pre "<h>The servers are</h>" | Out-file $file
Invoke-Item $file
问题是我的字符串数组被管道作为数组包含的字符数而不是元素本身。
解决方案
尝试以下操作:
$servers= 'GT544', 'HT54765', 'J4356', 'SW5654', 'JY67432'
$servers | ConvertTo-Html -Property @{ l='Name'; e={ $_ } }
注意:正如EBGreen所观察到的,$servers
变量不应被类型约束为[string] $servers = ...
,因为这会将字符串数组转换为单个字符串。在这种情况下,没有严格需要类型约束,但您可以使用[string[]] $servers = ...
ConvertTo-Html
默认情况下枚举输入对象的所有属性,并且在[string]
实例的情况下仅是.Length
属性。
因此,您需要使用一个计算属性来包装您的字符串,这就是这样
@{ l='Name'; e={ $_ } }
做的;l
条目为您的属性命名(将在表头中使用),e
条目通过脚本块 ( ) 定义其值{ ... }
,在这种情况下,它只是输入字符串本身 ( $_
)。
有关计算属性的更多信息,请参阅我的这个答案,但请注意,ConvertTo-Html
奇怪的是只支持l
/label
键来命名属性(也不支持n
/ name
)。此外,从v6.1.0-preview.2 开始
,传递计算属性目前在 PowerShell Core中完全被破坏
以上产生:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML TABLE</title>
</head><body>
<table>
<colgroup><col/></colgroup>
<tr><th>Name</th></tr>
<tr><td>GT544</td></tr>
<tr><td>HT54765</td></tr>
<tr><td>J4356</td></tr>
<tr><td>SW5654</td></tr>
<tr><td>JY67432</td></tr>
</table>
</body></html>
把它们放在一起:
$servers = 'GT544', 'HT54765', 'J4356', 'SW5654', 'JY67432'
$file = "C:\Users\karljoey.chami\Desktop\Htmltesting\Result.html"
$servers | ConvertTo-Html -Property @{ l='Name'; e={ $_ } } -Title "Servers in a table" `
-CssUri "C:\Users\karljoey.chami\Desktop\Htmltesting\Red.css" `
-pre "<h>The servers are</h>" | Out-file $file
Invoke-Item $file
推荐阅读
- python - 在python中将String对象转换为日期时间
- html - IE11父div没有得到与子img相同的宽度
- python - 使用 AJAX 请求解析 Python 脚本并在 Flask 的同一页面上显示数据
- angular - 将数据传递给可以多次调用的子组件
- html - 带有推送其他元素的入口动画 - 仅限 CSS
- android - 如果位置访问权限被拒绝,则将相机移动到
- ios - 如何访问嵌套在 UITests 的 MkMapView 中的 UIStackView 中的元素?
- java - J-Unit 4 检查返回类型
- python-3.x - 使用 pyspark 从 Oracle 读取字节/二进制文件
- azure-ad-b2c - AD B2C 自定义策略中 API 调用失败或 API 关闭的自定义错误消息