Powershell将字符串数组转换为-html

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (248)

出于测试的目的(在我应用到我的大代码之前),我决定通过管道传输一个字符串数组来转换到-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={ $_ } }

注:$servers变量不应受类型约束,因为[string] $servers = ...,因为它将字符串数组转换为单株绳子。在这种情况下,不需要严格地进行类型约束,但是可以使用[string[]] $servers = ...

ConvertTo-Html默认情况下,枚举所有特性的输入对象,如果是[string]实例,该实例仅为.Length财产。

因此,需要使用计算性质包扎你的弦,这就是

@{ l='Name'; e={ $_ } }做;做l条目为您的属性提供了名称(将在表标题中使用),以及e条目定义了价值通过脚本块({ ... }),在本例中,它只是输入字符串本身($_)

上述收益率:

<!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

扫码关注云+社区

领取腾讯云代金券