Zon*_*Out 5 html powershell calculated-field
出于测试目的(在应用我的大代码之前),我决定将一个字符串数组通过管道传递给 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
Run Code Online (Sandbox Code Playgroud)
问题是我的字符串数组正在通过管道传递为数组包含的字符数而不是元素本身。
请尝试以下操作:
$servers= 'GT544', 'HT54765', 'J4356', 'SW5654', 'JY67432'
$servers | ConvertTo-Html -Property @{ l='Name'; e={ $_ } }
Run Code Online (Sandbox Code Playgroud)
注意:正如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中完全被破坏
上面的结果是:
$servers= 'GT544', 'HT54765', 'J4356', 'SW5654', 'JY67432'
$servers | ConvertTo-Html -Property @{ l='Name'; e={ $_ } }
Run Code Online (Sandbox Code Playgroud)
把它们放在一起:
$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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5926 次 |
| 最近记录: |