在Powershell中创建数组可以使用逗号。
PS C:Powershell> $nums=2,0,1,2PS C:Powershell> $nums2012
对于连续的数字数组可以使用一个更快捷的方法
PS C:Powershell> $nums=1..5PS C:Powershell> $nums12345
数组的多态
象变量一样如果数组中元素的类型为弱类型,默认可以存储不同类型的值。
PS C:Powershell> $array=1,"2012世界末日",([System.Guid]::NewGuid()),(get-date)PS C:Powershell> $array12012世界末日Guid----06a88783-a181-4511-9e41-2780ecbd7924DisplayHint : DateTimeDate : 2011/12/9 0:00:00Day : 9DayOfWeek : FridayDayOfYear : 343Hour : 14Kind : LocalMillisecond : 910Minute : 15Month : 12Second : 45Ticks : 634590369459101334TimeOfDay : 14:15:45.9101334Year : 2011DateTime : 2011年12月9日 14:15:45
空数组和单元素数组
空数组
PS C:Powershell> $a=@()PS C:Powershell> $a -is [array]TruePS C:Powershell> $a.Count0
1个元素的数组
PS C:Powershell> $a=,"moss"PS C:Powershell> $a -is [array]TruePS C:Powershell> $a.Count1
强类型数组
Powershell数组一般具有多态性,如果你不指定元素的具体类型,解释器会自动选择合适的类型存储每个元素。如果要统一限制所有元素的类型,可是使用类型名和一对方括号作为数组变量的类型。这样每当赋值时,会自动类型检查。如果目标数据类型不能转换成功,就会抛出一个异常。
PS C:Powershell> [int[]] $nums=@()PS C:Powershell> $nums+=2012PS C:Powershell> $nums+=12.3PS 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
