PowerShell 数组(Array)
原创
©著作权归作者所有:来自51CTO博客作者JeesonHuang的原创作品,请联系作者获取转载授权,否则将追究法律责任
当一个命令执行返回多个结果的时候,PowerShell 会自动将结果集转换成数组存储,把每一行作为一个元素。以下本人测试了一些基本的数组操作。
PowerShell 当前版本:
创建数组:(创建数组方式有很多种)
#创建整型类型的数组,包含4个元素
$id = 2,0,1,2
$id = (2,0,1,2)
#创建字符类型的数组,包含4个元素
$id=@("A","B","C","D")
#创建一个元素的数组(无逗号则为变量)
$id=,"A"
#无元素的数组
$id=@()
#创建强类型数组
[int[]] $id=@()
#创建连续编号的数组
$id=1..10
#将操作结果存储为数组
$id = ipconfig
数组查询:
#创建数组
del variable:id
$id = 2,0,1,2
#选择第3个元素的值
$id[2]
#选择第1个和第3个元素
$id[0,2]
#选择第1个至第3个元素
$id[0..2]
#统计数组中的元素个数
$id.count
#选择数组中的最后一个元素
$id[$my.count-1]
$id[-1]
#反序输出数组元素
$id[$id.count..0]
添加删除数组元素:
#添加值为5和9的元素到数组中
$id+='5'
$id=$id+'9'
#删除数组中的部分元素,如删除第3个元素(实为重新赋值)
$id=$id[0..1]+$id[3..$id.count]
将字符变量转成数组显示:
$str="abcd"
$str.Tochararray()
查看变量是否为数组类型:
查看数组及元素的类型:
#获取数组类型
$id.gettype()
#强类型的数组
[int[]] $id=@()
$id.gettype()
#获取数组元素类型
$id[0].gettype()
复制数组:
del variable:id
del variable:my
$id = 2,0,1,2
$my=$id
del variable:id
del variable:my
$id=@("A","B","C","D")
$my=$id.clone()
哈希表!
哈希表并非数组,这里放到数组的章节中,因为用法与数组有些类似。哈希表以键值对("key-value pairs")存储,在哈希表中,可以不用像数组那样的编号定位其值了,而是用键名称查找到相应的值。创建哈希表用 @{} 替代数组的 @() 。
创建哈希表:
#使用@{}创建哈希表
$stu=@{ name="kk"; age=12; sex="M"}
#查看类型
$stu -is [Array]
$stu.gettype()
查看哈希表键值:
#查看键值
$stu.age
$stu.name
$stu["name"]
$stu["name","age"]
#返回所有键(无值)
$stu.keys
#返回所有值(无键)
$stu[$stu.keys]
哈希表中存储数组:
$stu=@{ name="kk"; age=12; sex="M"; books="book1","book2","book3"}
$stu.books
哈希表中更改、添加、删除 键值对:
$stu.age=18
$stu.books = "book1", "book2", "book3" ,"book4"
$stu.addr="shenzhen"
$stu.remove("sex")
$stu
参考: PowerShell 在线教程 Chapter 4. Arrays and Hashtables