当一个命令执行返回多个结果的时候,PowerShell 会自动将结果集转换成数组存储,把每一行作为一个元素。以下本人测试了一些基本的数组操作。


PowerShell 当前版本:

PowerShell 数组(Array)_数组


创建数组:(创建数组方式有很多种)

#创建整型类型的数组,包含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]

PowerShell 数组(Array)_数组元素_02



添加删除数组元素:

#添加值为5和9的元素到数组中
$id+='5'
$id=$id+'9'


#删除数组中的部分元素,如删除第3个元素(实为重新赋值)
$id=$id[0..1]+$id[3..$id.count]

PowerShell 数组(Array)_数组_03




将字符变量转成数组显示:

$str="abcd"
$str.Tochararray()

PowerShell 数组(Array)_数组元素_04



查看变量是否为数组类型:

$id -is [Array]

PowerShell 数组(Array)_PowerShell_05



查看数组及元素的类型:

#获取数组类型
$id.gettype()

#强类型的数组
[int[]] $id=@()
$id.gettype()

#获取数组元素类型
$id[0].gettype()

PowerShell 数组(Array)_数组元素_06



复制数组:

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()

PowerShell 数组(Array)_数组_07




哈希表!

哈希表并非数组,这里放到数组的章节中,因为用法与数组有些类似。哈希表以键值对("key-value pairs")存储,在哈希表中,可以不用像数组那样的编号定位其值了,而是用键名称查找到相应的值。创建哈希表用 @{} 替代数组的 @()


创建哈希表:

#使用@{}创建哈希表
$stu=@{ name="kk"; age=12; sex="M"}

#查看类型
$stu -is [Array]
$stu.gettype()

PowerShell 数组(Array)_PowerShell_08



查看哈希表键值:

#查看键值
$stu.age
$stu.name
$stu["name"]
$stu["name","age"]

#返回所有键(无值)
$stu.keys

#返回所有值(无键)
$stu[$stu.keys]

PowerShell 数组(Array)_数组元素_09




哈希表中存储数组:

$stu=@{ name="kk"; age=12; sex="M"; books="book1","book2","book3"}
$stu.books

PowerShell 数组(Array)_数组元素_10



哈希表中更改、添加、删除 键值对:

$stu.age=18
$stu.books = "book1", "book2", "book3" ,"book4"

$stu.addr="shenzhen"

$stu.remove("sex")

$stu

PowerShell 数组(Array)_PowerShell_11




参考: ​​PowerShell 在线教程​​​   ​​Chapter 4. Arrays and Hashtables​