我仍然对Powershell还是陌生的,最近我开始了解get-member属性。但是,当我通过管道将命令转换为html时,该值消失了。
我有一个名为link.csv的数据,下面是文件的内容
Target Node Address Status
------ ---- ------- ------
server01 0:2:3 20230002AC0153AF Up
server01 0:2:4 20240002AC0153AF Up
server01 1:2:3 21230002AC0153AF Up
server01 1:2:4 21240002AC0153AF Up
我可以按照以下方法获取属性值。
PS C:\Report\script\Temp> $a= Import-Csv .\link.csv | select Target,Node,Address,Status
PS C:\Report\script\Temp> $a.Node[1]
0:2:4
PS C:\Report\script\Temp> $a.Status[1]
Up
PS C:\Report\script\Temp> $a.Target[1]
server01
但是当我将其输出到Convertto-Html
PS C:\Report\script\Temp> $a= Import-Csv .\link.csv | select Target,Node,Address,Status | ConvertTo-Html -Fragment -PreContent "<font color=`"Black`"><H4>Remote Copy Group - $b</H4></font> "
PS C:\Report\script\Temp> $a.Target[1]
Cannot index into a null array.
At line:1 char:1
+ $a.Target[1]
+ ~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArray
在运行convertto-html命令时如何获取属性值。 希望您能帮我解决这个问题。
先谢谢您。
答案 0 :(得分:0)
如果您想在管道中捕获中间结果,请使用带有变量名称的-OutVariable
/ -ov
common parameter以便将这些结果存储在该变量中:
$html = Import-Csv .\link.csv |
Select-Object Target, Node, Address, Status -OutVariable a |
ConvertTo-Html -Fragment -PreContent "<font color=`"Black`"><H4>Remote Copy Group - $b</H4></font> "
$a.Target[1]
请注意管道整体如何返回 HTML (作为行的数组),而从CSV输入过滤的中间自定义对象则通过$a
存储在变量-OutVariable
中,供以后使用-请注意如何仅将变量 name 传递给-OutVariable
,而不传递$
标记,即仅传递a
而不是{{1 }}。