Windows Powershell使用哈希表_PowerShell

哈希表存放的是对,在哈希表中不再仅仅限制使用数字寻址,可以使用任意类型的数据类型寻址。

创建哈希表
之前使用@()创建数组,现在使用@{}创建哈希表,使用哈希表的键访问对应的值。

PS C:Powershell> $stu=@{ Name = "小明";Age="12";sex="男" }
PS C:Powershell> $stu

Name              Value
----              -----
Name              小明
Age              12
sex              男

PS C:Powershell> $stu["Name"]
小明
PS C:Powershell> $stu["age"]
12
PS C:Powershell> $stu.Count
3
PS C:Powershell> $stu.Keys
Name
Age
sex
PS C:Powershell> $stu.Values
小明
12
男

在哈希表中存储数组

可以在创建哈希表时就使用数组,因为创建数组和哈希表的的元素关键字不冲突。一个是逗号,一个是分号。

PS C:Powershell> $stu=@{ Name = "小明";Age="12";sex="男";Books="三国演义","围城","哈姆雷特" }
PS C:Powershell> $stu

Name              Value
----              -----
Books             {三国演义, 围城, 哈姆雷特}
Name              小明
Age              12
sex              男

在哈希表中插入新的键值

在哈希表中插入新的键值很方便,象定义变量一样,可以直接拿来使用

PS C:Powershell> $Student=@{}
PS C:Powershell> $Student.Name="令狐冲"
PS C:Powershell> $Student.School="华山派"
PS C:Powershell> $Student

Name              Value
----              -----
Name              令狐冲
School             华山派

哈希表值的更新和删除

如果要更新键的值,可以直接重写。如果要删除这个键值对,可以使用Remove方法,参数为Key

PS C:Powershell> $stu

Name              Value
----              -----
Books             {三国演义, 围城, 哈姆雷特}
Name              小明
Age              12
sex              男

PS C:Powershell> $stu.Name="赵强"
PS C:Powershell> $stu.Name
赵强
PS C:Powershell> $stu.Remove("Name")
PS C:Powershell> $stu

Name              Value
----              -----
Books             {三国演义, 围城, 哈姆雷特}
Age              12
sex              男

使用哈希表格式化输出

在Powershell中哈希表的一个有趣的应用可以用来格式化文本输出。Powershell许多命令的输出结果都是以表格的形式,当然可以使用Format-Table自定义表格格式,例如:

PS C:Powershell> Dir | Format-Table

  Directory: C:Powershell

Mode        LastWriteTime   Length Name
----        -------------   ------ ----
d----    2011/11/23   17:25      ABC
d----    2011/11/29   18:21      myscript

PS C:Powershell> Dir | Format-Table FullName,Mode

FullName                          Mode
--------                          ----
C:PowershellABC                      d----
C:Powershellmyscript                   d----
C:Powershella.html                    -a---

上述的命令只能限制表格输出那些列,隐藏那些列。但是对于列的宽度,列标题无能为力,但是有了哈希表就可以实现更多自定义了。
表格的每一个列包含四个属性:
Expression:绑定的表达式
Width:列宽度
Label:列标题
Alignment:列的对齐方式

PS C:Powershell> $column1 = @{expression="Name"; width=30;label="filename"; alignment="left"}
PS C:Powershell> $column2 = @{expression="LastWriteTime"; width=40;label="last modification"; alignment="right"}
PS C:Powershell> ls | Format-Table $column1, $column2

filename                       last modification
--------                       -----------------
ABC                         2011/11/23 17:25:53
myscript                      2011/11/29 18:21:28
a.html                       2011/11/24 18:30:13

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索windows
, 哈希表
powershell
powershell 哈希表、windows powershell、windows10 powershell、windows7 powershell、windowspowershell2.0,以便于您获取更多的相关知识。

时间: 2024-10-26 06:37:44

Windows Powershell使用哈希表_PowerShell的相关文章

Windows Powershell 通过函数扩展别名_PowerShell

在Powershell中设置别名的确方便快捷,但是在设置别名的过程中并设置参数的相关信息.尽管别名会自动识别参数,但是如何把经常使用的参数默认设定在别名里面呢?例如Test-Connection -Count 2 -ComputerName,让-"-Count 2″ 固化在别名中. 这时简单的别名无法完成上述需求,可以通过函数来完成它,并且一旦把函数拉过来,定义别名会变得更加灵活. PS C:\PS> function test-conn { Test-Connection -Count

Windows Powershell对象转换成文本_PowerShell

Out-Default可以将对象转换成可视的文本.事实上Out-Default会首先调用Format-Table,将更多的属性默认隐藏.再调用Out-Host将结果输出在控制台上.因此下面的三组命令执行结果是相同的. ls ls | Format-Table | Out-Host ls | Out-Default 显示隐藏的对象属性 要查看对象结果的所有属性,可是使用 ls | Format-Table * 这样因为属性和属性的内容太多可能不会显示完全,可以使用文本换行参数 ls | Forma

Windows Powershell 执行文件和脚本_PowerShell

象运行可执行文件一样,Powershell运行文件和脚本,也必须使用绝对路径或者相对路径,或者要运行的文件必须定义在可受信任的环境变量中. 关于脚本 脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码. 执行批处理文件 批处理是扩展名为".bat"的文本文件,它可以包含任何cmd控制台能够处理的命令.当批处理文件被打开,Cmd控制台会逐行执行每条命令.那Powershell能够直接执行批处理吗? 将下列命令保存为ping.bat @echo off

Windows Powershell 变量的幕后管理_PowerShell

在Powershell中创建一个变量,会在后台生成一个PSVariable对象,这个对象不仅包含变量的值,也包含变量的其它信息,例如"只写保护"这样的描述. 如果在Powershell中输出一个变量,只会输出这个变量的值.不能够显示它的其它信息,如果想查看一个变量的其它保留信息,就需要变量的基类PSVariable对象,这个可以通过Get-Variable命令得到,下面的例子演示如何查看一个变量的全部信息. PS> $a=get-date PS> Get-Variable

Powershell使用嵌套哈希表实例 嵌套哈希表的2种写法例子_PowerShell

嵌套哈希表对于多维数组是一个更好选择.这种存储方式将更易于管理.请看: 复制代码 代码如下: $person = @{} $person.Name = 'Weltner' $person.Id = 12 $person.Address = @{} $person.Address.Street = 'Canyon Rim' $person.Address.City = 'Folsom' $person.Address.Details = @{} $person.Address.Details.St

Windows Powershell 自动化变量_PowerShell

Powershell 自动化变量 是那些一旦打开Powershell就会自动加载的变量. 这些变量一般存放的内容包括 用户信息:例如用户的根目录$home 配置信息:例如powershell控制台的大小,颜色,背景等. 运行时信息:例如一个函数由谁调用,一个脚本运行的目录等. PS> $HOME C:\Users\test PS> $currentProcessID=$pid PS> $currentProcessID 5356 PS> Get-Process -Id $pid H

Windows Powershell排序和分组管道结果_PowerShell

使用Sort-Object和Group-Object可以对管道结果进行分组. 其实每条命令执行后的结果已经排过序了.例如通过ls 查看文件列表,默认会根据Name属性进行排序,但是你可以通过指定属性进行排序例如: PS C:Powershell> ls | Sort-Object Length Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2011/11/28 15:30 63 ping.bat -a---

【探索PowerShell 】【八】数组、哈希表

我们经常在程序设计中用到的数组,同样在脚本中很常用.本节就详细介绍一下数组,以及哈希表在PowerShell中的使用. 数组 在PowerShell中,声明一个变量为数组时,需要使用符号"@",例如: $strUsers=@(""user1","user2","user3) <enter> 这样,我们就声明了一个具有3个成员的数组.查看它的值,使用: $strUsers <enter> 还有一些其他的操

Windows Powershell使用管道_PowerShell

管道并不是什么新事物,以前的Cmd控制台也有重定向的命令,例如Dir | More可以将结果分屏显示. 传统的Cmd管道是基于文本的,但是Powershell是基于对象. PS> ls | Sort-Object -Descending Name | Select-Object Name,Length,LastWriteTime | ConvertTo-Html | Out-File ls.html PS> Get-Content .ls.html Name Length LastWriteT