我需要请求一些以对象形式出现的信息。我需要替换其中一个属性中的一些测试,然后将对象列表写入 CSV。
当我做
Get-Process | select * | %{ $_Path.Replace("chrome", "ie") }
我有两个问题
- 如果 $_.Path 为 null,则会出现错误,提示您无法对空值表达式调用方法
- 输出是表示被替换文本的单个字符串(仅是 Path 属性)。我需要保留原始对象及其所有属性,但需要更新路径值。
所以当然当我尝试做时
Get-Process | select * | %{ $_Path.Replace("chrome", "ie") } | Export-Csv -Path "out.csv"
我得到的是单个属性 Length,因为上面的输出是一个仅包含 Length 属性的字符串。
Get-Process | select * | %{ $_.Path = $_.Path.Replace("chrome", "ie"); $_ } | Export-Csv -Path "out.csv" -NoTypeInformation
-
$_.Path
代替$_Path
- 将替换的文本分配回路径属性
- 并在完成赋值后输出对象
帮助链接(如果可供使用的话):
-
Get-Process http://go.microsoft.com/fwlink/?LinkID=113324(在模块中
Microsoft.PowerShell.Management
)
-
select
是一个别名Select-Object http://go.microsoft.com/fwlink/?LinkID=113387(在模块中Microsoft.PowerShell.Utility
)
-
%
是一个别名ForEach-Object http://go.microsoft.com/fwlink/?LinkID=113300
-
Export-Csv http://go.microsoft.com/fwlink/?LinkID=113299(在模块中
Microsoft.PowerShell.Utility
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)