«
»
数组其实在任何语言里都是一个比较头疼的学习对象,在学习PowerShell的空余时间,做了以下简单整理:
1. 在PowerShell中,只要把不同的对象用逗号“,”连接起来,就可以构造出数组对象。
例如:520,'abc',2MB,0xFFFE
520
abc
2097152
65534
上面的小例子输出了4个对象:数值“520”、字符串“abc”、数值“2MB”和十六进制数值“0xFFFE”。
2. 关于数组对象更多的特性:
$array = 1,2,3,4,5
$int = 1
$array.count
5
"$array"
1 2 3 4 5
$int.count
"$int"
1
以上$int是一个整数,而不是数组。
3. PowerShell是基于对象的shell,现在让我们来看看数组究竟是什么对象:
$array.GetType().FullName
System.Object[]
其实Powershell实际操作的对象还是.Net类库中的对象。使用数组时,需要大家记住数组的第一个元素的下标是“0”、数组的最后一个元素下标是数组长度减去1。例如:
$array = 1,2,3
$array.Length
3
$array[0]
1
$array[2]
3
实际上,当数组访问越界时,PowerShell是不会给出任何错误信息的,只会得到一个$null对象,如$array[4] 。
3. 如何向这个数组中添加新的元素呢:
$a = " I ", " am "
$a[0]
I
$a[1]
am
$a[2] = " Lihua "
Array assignment failed because index '2' was out of range.
At line:1 char:4
+ $a[2 <<<< ]=" Lihua "
虽然如此,但PowerShell可以通过$a[0]="we"来修改数组元素值。另外添加则需要:
$a = $a + " Lihua "
$a
I am Lihua
最后补充一下学习PowerShell中的系统cmdlets技巧:
我写了一个批量输出帮助文件,并只输出Examples的例子,希望对你学习有帮助。
$d = Get-Command -CommandType Cmdlet
"Total:" + $d.Count
$i = 0
$d | ForEach-Object -process{
$i++
"Printing" + $i
$cmdlet =