我们经常在程序设计中用到的数组,同样在脚本中很常用。本节就详细介绍一下数组,以及哈希表在PowerShell中的使用。
数组
在PowerShell中,声明一个变量为数组时,需要使用符号"@",例如:$strUsers=@("user1","user2","user3")COPY 这样,我们就声明了一个具有3个成员的数组。查看它的值,使用:$strUsersCOPY
PS E:\> $strUsers=@("user1","user2","user3")
PS E:\> $strUsers
user1
user2
user3
|
还有一些其他的操作,如统计一个数组的成员数目:$strUsers.CountCOPY 查看或者为数组成员单独赋值(需要注意的是,PowerShell与大多数程序语言一样,数组成员下标从0开始计数):$strUsers[0]COPY
$strUsers[1]="marui"COPY 也可以使用加号合并数组,如:
PS E:\> $x=@(1,2,3)
PS E:\> $y=@(4,5,6)
PS E:\> $z=$x+$y
PS E:\> $z
1
2
3
4
5
6
|
哈希表
哈希表,也就是字典,是一种非常优秀的数据结构,允许我们使用关键字进行查询,它几乎没有性能损失,这些都是因为它的基本结构能够很好的符合计算机存储运算特性。
在声明哈希表变量时,同样需要用到符号"@",如:$age=@{"MaRui"=21;"Lee"=27;"Tom"=53}COPY
PS E:\> $age=@{"MaRui"=21;"Lee"=27;"Tom"=53}
PS E:\> $age
Name Value
---- -----
MaRui 21
Tom 53
Lee 27
|
与数组相似的也有如下操作: | | | $age["MaRui"] | | | | | | $age["Ma"]=24 | | | | | | $age["Ma"]=25 | | | | | | $age.remove("Ma") | | | | | | $age.clear()COPY |
这节的内容很简单,就讲到这里。感谢各位花时间来浏览我的博客!
下去之后,有人问及我在PowerShell中如何进行复制粘贴,其实方法很简单,使用鼠标右键就可以了。
复制
我使用一个cmdlet来查看BIOS信息,并且复制它:get-wmiobject -class Win32_BIOSCOPY
PS E:\> get-wmiobject -class Win32_BIOS
SMBIOSBIOSVersion : 8HET40WW(1.33)
Manufacturer : LENOVO
Name : Default System BIOS
SerialNumber : R6K7H8A
Version : LENOVO - 123
|
请各位试试复制下面的脚本内容(此脚本用来查看BIOS的详细信息): | $info = get-wmiobject -class Win32_BIOS -namespace root\CIMV2 -comp . | | | | foreach ($objItem in $info) { | | write-host "BIOS Characteristics: " $objItem.BiosCharacteristics | | write-host "BIOS Version: " $objItem.BIOSVersion | | write-host "Build Number: " $objItem.BuildNumber | | write-host "Caption: " $objItem.Caption | | write-host "Code Set: " $objItem.CodeSet | | write-host "Current Language: " $objItem.CurrentLanguage | | write-host "Description: " $objItem.Description | | write-host "Identification Code: " $objItem.IdentificationCode | | write-host "Installable Languages: " $objItem.InstallableLanguages | | write-host "Installation Date: " $objItem.InstallDate | | write-host "Language Edition: " $objItem.LanguageEdition | | write-host "List Of Languages: " $objItem.ListOfLanguages | | write-host "Manufacturer: " $objItem.Manufacturer | | write-host "Name: " $objItem.Name | | write-host "Other Target Operating System: " $objItem.OtherTargetOS | | write-host "Primary BIOS: " $objItem.PrimaryBIOS | | write-host "Release Date: " $objItem.ReleaseDate | | write-host "Serial Number: " $objItem.SerialNumber | | write-host "SMBIOS BIOS Version: " $objItem.SMBIOSBIOSVersion | | write-host "SMBIOS Major Version: " $objItem.SMBIOSMajorVersion | | write-host "SMBIOS Minor Version: " $objItem.SMBIOSMinorVersion | | write-host "SMBIOS Present: " $objItem.SMBIOSPresent | | write-host "Software Element ID: " $objItem.SoftwareElementID | | write-host "Software Element State: " $objItem.SoftwareElementState | | write-host "Status: " $objItem.Status | | write-host "Target Operating System: " $objItem.TargetOperatingSystem | | write-host "Version: " $objItem.Version | | write-host | | }COPY |
本文出自 “马睿的技术博客” 博客,请务必保留此出处http://marui.blog.51cto.com/1034148/293506 |