还记得我刚学会使用PowerShell的时候,那种兴奋和幸福感。终于找到了在Windows下一个强大的Shell(因为他叫Power Shell)。可以一边使用着熟悉的Windows桌面系统一边装X的Shell编程了。当我使用它来处理CSV时一个意外的发现,仿佛为我点亮了PowerShell的又一片地图。因为我发现每次不管处理什么样的CSV,最后它总能将每一行数据转化成一个方便处理的对象。就像JavaScript里面的Object可以动态添加属性一样。
接下来看看PSCustomObject的神奇。
初识PSCutomObject
假如你有一个CSV文件需要处理, 通过Import-Csv把它倒入内存中。
$csvdata=Import-Csv -Path C:\new_user_credentials.csv
看下这个$csvdata都有些什么数据呢?格式化一下
$csvdata | fl
是不是看起来很像是Javascript的Object对象,如果CSV文件里面有更多的列,那么对应的 $csvdata也会有更多的属性。
我们可以看下这个$csvdata到底是什么类型的
$csvdata.GetType()
获取某一条数据的某一个属性:
$csvdata.'User name'
admin
改变数据:
$csvdata.'User name'='root'
$csvdata.'User name'
root
$csvdata | Add-Member -MemberType NoteProperty -Name Status -Value "Processed" #添加处理结果
$csvdata
User name : root
Password :
Access key ID : AKIAUBW6TJDQAQ7GLWXY
Secret access key : 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
Console login link : https://278565964000.s