PowerShell是一种任务自动化和配置管理框架,最初由Microsoft开发。它提供了一种命令行环境和脚本语言,用于快速而灵活地自动化一系列的操作和任务。
与传统的命令行环境(如Windows的cmd.exe)相比,PowerShell具有更强大的功能和更直观的语法。它支持对象管道,允许将命令的输出作为输入传递给其他命令,从而实现更复杂的操作。此外,PowerShell还提供了丰富的内置命令和函数,用于管理和操作操作系统、网络和应用程序。
本文主要介绍PowerShell对哈希表这种数据结构的支持。
哈希表
powershell提供了哈希表这种数据结构,其形式为键值对的一一对应,若以数组相类比,可以理解成下标可以不为整数的数组。其创建方式为,用【@{}】将一组用分号分开的键值对括起来即可,键值对之间用等号进行映射。其索引方法有二,一是方括号索引,二是通过点号进行索引,示例如下
$hash = @{ A = "Micro"; B = "Code"; C = 123 }
$hash.A # "Micro"
$hash["A"] # "Micro"
$hash["D"] = 456
$hash
hash打印内容如下
Name | Value |
---|---|
---- | ----- |
C | 123 123 123 |
D | 456 456 456 |
B | Code |
A | Micro |
有序字典
在上面创建的哈希表hash里,ABCD四个键值对在打印时的顺序,与我们预想的并不相同,其输出次序CDBA与我们的输入次序ABCD几乎毫无关系。这是因为,散列表并不关心其内部数据的存放次序,如果相让它们有序存放,可以指定其[ordered]属性,从而创建一个有序字典
$dct = [ordered]@{ A = "Micro"; B = "Code"; C = 123 }
echo $dct
dct打印内容如下,说明哈希表的确根据键来进行排序了。
Name | Value |
---|---|
---- | ----- |
A | Micro |
B | Code |
C | 123 123 123 |
如果不想创建有序字典,同时还想让哈希表进行有次序地输出,那么可以使用【Sort-Object】指令,让哈希表进行排序
迭代
哈希表内置了键值属性,分别用keys和values来调用,并且提供了remove方法,可以移除某个键值对。此外,哈希表同样重载了【+】,【+=】运算符,并且支持foreach循环。
$hash.remove("D")
foreach($h in $hash.keys){
echo $h
}
# 打印内容以此为 C B A