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 文件产生的对象具有更多的属性。
     几个要点: 
  1. import-csv 命令 导入后生成一个对象数组,每一个对象的属性为 csv 文件中的打头行(列表)( header line ),就和数据库的表一样,每一对象代表一行数据
  2. 如何新增自定义对象,和往对象中添加属性 new-object System.Object  和 Add-Member -type NoteProperty -name xxx -value yyy
  3. .NET Framework formatting syntax  "{0:N3}" –f  格式化语法 大概查了下,N or n 代表数字,3代表小数点后三位  那个0不知道是什么意思,占位吗?
  4. 第二个值计算的时候要强制转换 [int] $objBatter.Hits ,因为powershell默认将这个值当作 String 来对待
 
     这个的使用可以用在对相关一些文件的处理中,不过也许直接使用excel更加便捷? 还有也许新建对象可以更加方便的处理一些自定义的问题?后边再看吧
posted @ 2017-11-28 20:17  newone  阅读(135)  评论(0编辑  收藏  举报