pwershell custom objects
主要讲解的脚本
$colAverages = @() $colStats = Import-CSV C:\Scripts\Test.txt foreach ($objBatter in $colStats) { $objAverage = New-Object System.Object $objAverage | Add-Member -type NoteProperty -name Name -value $objBatter.Name $objAverage | Add-Member -type NoteProperty -name BattingAverage -value ("{0:N3}" -f ([int] $objBatter.Hits / $objBatter.AtBats)) $colAverages += $objAverage } $colAverages | Sort-Object BattingAverage -descending
本例主要讲解了,建立自己的对象,添加对象属性,并通过一些命令来达到操作对象属性的目的( 本例是计算命中率),新建自己的对象可以添加自己定义的属性,比直接导入 csv 文件产生的对象具有更多的属性。
几个要点:
- import-csv 命令 导入后生成一个对象数组,每一个对象的属性为 csv 文件中的打头行(列表)( header line ),就和数据库的表一样,每一对象代表一行数据
- 如何新增自定义对象,和往对象中添加属性 new-object System.Object 和 Add-Member -type NoteProperty -name xxx -value yyy
- .NET Framework formatting syntax "{0:N3}" –f 格式化语法 大概查了下,N or n 代表数字,3代表小数点后三位 那个0不知道是什么意思,占位吗?
- 第二个值计算的时候要强制转换 [int] $objBatter.Hits ,因为powershell默认将这个值当作 String 来对待
这个的使用可以用在对相关一些文件的处理中,不过也许直接使用excel更加便捷? 还有也许新建对象可以更加方便的处理一些自定义的问题?后边再看吧