Windows Powershell强类型数组


Powershell数组一般具有多态性,如果你不指定元素的具体类型,解释器会自动选择合适的类型存储每个元素。如果要统一限制所有元素的类型,可是使用类型名和一对方括号作为数组变量的类型。这样每当赋值时,会自动类型检查。如果目标数据类型不能转换成功,就会抛出一个异常。

PS C:Powershell> [int[]] $nums=@()
PS C:Powershell> $nums+=2012
PS C:Powershell> $nums+=12.3
PS C:Powershell> $nums+="999"
PS C:Powershell> $nums+="can not convert"
Cannot convert value "can not convert" to type "System.Int32". Error: "Input string was not in a correct format."
At line:1 char:6
+ $nums <<<< +="can not convert"
  + CategoryInfo     : MetadataError: (:) [], ArgumentTransformationMetadataException
  + FullyQualifiedErrorId : RuntimeException

Windows Powershell使用哈希表
哈希表存放的是对,在哈希表中不再仅仅限制使用数字寻址,可以使用任意类型的数据类型寻址。创建哈希表之前使用@()创建数组,现在使用@{}创建哈

Windows Powershell使用管道
管道并不是什么新事物,以前的Cmd控制台也有重定向的命令,例如Dir|More可以将结果分屏显示。传统的Cmd管道是基于文本的,但是Powershell是基于对象。PS

Windows Powershell对象转换成文本
Out-Default可以将对象转换成可视的文本。事实上Out-Default会首先调用Format-Table,将更多的属性默认隐藏。再调用Out-Host将结果输出在控制台上。因此下面