[PowerShell教程][10]PowerShell中的HashTable的使用

【全新官方接口】php检测微信域名拦截,检测微信域名被封 你的域名在微信被拦截的3种常见情况 1、域名因违规或有风险被拦截(红色拦截) 2、类似taobao.com,douyin.com这种的恶意竞争式拦截,淘宝、抖音等微信的竞争对手一般都是白色拦截(白色拦截) 3、有一个中间页的拦截,需要多次点击按钮才可以跳转到你的域名的,多是一些新型域名后缀,例如.top .xyz .link后缀,这种情况,备案后可以解决(备案拦截) 通过php get_headers()函数就可以分析到结果 这个下标为6是一个URL,在微信访问后正是这个讨厌的页面! 如果切换为 阅读详情

哈希表(hashtable)有时候也被称为:“关联数组”或“字典”。哈希表可以称得上是计算机科学中最重要的数据结构之一,例如:在计算机操作系统、数据库系统、编译器、加密算法等计算机底层程序中,哈希表都发挥着重要的作用。哈希表提供以近乎常数时间开销,根据数据的键(key)来索引到该键对应的值(value)。就好像使用工具书一样,我们总是通过目录中项的名称和页码,来检索我们关心的知识或信息。

在传统的Unix环境中,awk程序内置的关联数组,为数据处理提供了便捷的手段。因此掌握哈希表类型,可以使您在解决工作中的问题时候,更加得心应手。

如何声明一个哈希表对象?哈希表的创建是非常简单的,请看如下示例:

PS C:/> $hash = @{}

PS C:/> $hash.GetType().FullName

System.Collections.Hashtable

PS C:/> $hash.Count

0

示例中首先使用了“@{}”语法初始化了一个空的哈希表,并将其保存在变量$hash中。接下来验证了该对象的类型,并查看了哈希表中元素的数量,由于只是初始化了一个空哈希表,所以返回结果是0。如果在初始化时,需要添加一些键值对到哈希表的话,应该使用什么样的语法呢?我们只要在“@{”和“}”标记之间输入以分号“;”分隔的键值对即可,键值对的格式:<key> = <value>。请看如下示例:

PS C:/> $hash = @{ "Computer Name" = "AD Server";

>> "Administrator" = "Ma Tao", "Spider Man";

>> "OS" = "Windows 2008";

>> "Installed Date" = Get-Date;

>> "Disk Size" = 5000GB

>> }

>>

PS C:/> $hash

Name                           Value

----                           -----

OS                             Windows 2008

Disk Size                      5368709120000

Installed Date                 2008/7/31 23:09:57

Computer Name                  AD Server

Administrator                  {Ma Tao, Spider Man}

这是一个记录服务器信息的哈希表,哈希表的所有信息都已经可以看到。在创建哈希表的时候,键“Administrator”对应的值是一个数组的引用;类似的还有安装日期是命令Get-Date返回的对象。通过这个例子,我们可以了解到PowerShell中的哈希表可以很方便地存储各式各样的数据信息。但是我们应该如何去访问哈希表中的元素呢?在PowerShell中,有两种便捷的办法获取哈希表中存储的信息。第一种办法是类似访问对象属性的方法:

PS C:/> $hash.os

Windows 2008

PS C:/> $hash.Administrator

Ma Tao

Spider Man

PS C:/> $hash."Computer Name"

AD Server

这种方法很方便,只需要在点号后面输入键的名称即可。如果键值包含空白字符的话,可以通过使用引号来访问该键值对应的信息。如果希望能够同时索引多个键的值,这种类似访问属性的方法就无法完成了。不过PowerShell提供了另一种办法,它类似于数组访问的形式,使得我们可以同时返回哈希表中的几个元素。例如:

PS C:/> $hash["Disk Size", "Installed Date"]

5368709120000

2008731 23:09:57

动态访问PowerShell对象中的数据 摘要:本文介绍了在PowerShell中动态访问对象数据的两种方法。通过天气数据示例,展示了如何存储多个国家的天气信息为PSCustomObject。重点比较了两种解决方案:使用哈希表存储数据并通过键名访问(推荐方法),以及使用Get-Variable命令访问独立变量(不推荐)。文章强调哈希表方案更清晰高效,适合处理大量动态数据,提升代码可维护性。 阅读详情

相关推荐

WOFOST作物模型(3):敏感性分析

使用TAGP(Total Above Ground Production),地上总产量TSUM1,temperature sum from emergence to anthesis,萌发至开花所需温度TSUM2,temperature sum from anthesis to maturity,开花至成熟所需温度SPAN,life span of leaves growing at 35 Celsius,生长温度为35度时的叶龄。

所有专家都曾始于新手 1123

精通PowerShell数组与哈希表操作

本文深入探讨了PowerShell数组与哈希表的操作技巧,包括数组的声明、访问、修改以及多维数组的创建。同时,详细介绍了哈希表的定义、访问方法和使用场景,并对PowerShell脚本语言中的控制结构、循环、条件语句和子程序进行了阐述。

weixin_33816734的博客 280

掌握PowerShell中的哈希表、Active Directory和DSC资源

本文深入探讨了PowerShell中哈希表的创建和管理技巧、Active Directory模块的基本cmdlet使用方法,以及如何创建基于DSC类的资源。内容涵盖了从简单的哈希表操作到复杂的AD用户、组、计算机和对象的管理,还包括了PowerShell模块的创建和内置变量的使用

weixin_42602726的博客 232

Powershell学习笔记3——hashtable

Manning--Powershell In Action Page 66 Collections:dicitonaries and hashtables One of the most flexible datatypes supported in PowerShell is the hashtable. This atatype lets you map a ...

weixin_34221332的博客 306

Powershell:关于hashtable你想知道的一切

译者语:本篇为一篇译文,详细介绍了在powershell中如何使用hashtable这种数据类型.本文为本人2018年最后一篇博文(哈哈,一年内写没写几篇),也是本人的第一次译文,有不足之处还请指教.祝大家元旦快乐! 我在工作中经常用到它,现在想停下来讨论一下它(hashtable).昨天夜里小组会议后我教了一些同事如何使用hashtable,我很快意识到初识hashtable时我也曾经有与他们相...

weixin_30701575的博客 745

PowerShell介绍 第九回 哈希表

聊完数组,接下来说说哈希值。其实这两者都是类似的: 使用@()创建数组,而使用@{}创建哈希表 同样地使用键访问对应的值。 那么,创建哈希表时,请遵循以下准则: 1. 以 at 符号 (@) 作为哈希表开头。 用大括号 ({}) 将哈希表括起。 输入一个或多个名称/值对作为哈希表的内容。 使用等号 (=) 将每个名称与其值分隔开。 使用

MMMMMMELODY的博客 1858

PowerShell中的HashTable使用

POWERSHELL中,经常需要使用到hash表,对于HASH表的理解,可以参考下述哈希表(hashtable)有时候也被称为:“关联数组”或“字典”。哈希表可以称得上是计算机科学中最重要的数据结构之一,例如:在计算机操作系统、数据库系统、编译器、加密算法等计算机底层程序中,哈希表都发挥着重要的作用。哈希表提供以近乎常数时间开销,根据数据的键(key)来索引到该键对应的值(...

weixin_34372728的博客 871

powershell Hashtable to arraylist

#Hashtable转换成arraylist,实现排序 $testhash=@{} 1..10|%{$testhash+=@{(('abcdefghij'.ToCharArray()|Get-Random -c 4) -join $null)=[int](Get-Random -max 100 -min 1)}} $newlist=New-Object system.collections.arr

shrekz的专栏 1261

[转][PowerShell]- powershell hashtable 的遍历

如下我们创建一个hashtable $hash=@{"name"="ff"}$hash.Add("dd","fffff"); 在c#中我们使用下面的句子进行遍历 foreach(DictionaryEntry de in yourHashTable) { } 但是在powershell 中此法行不通。 我使用了从下方法 1.使用foreach ...

weixin_34148456的博客 346

hashtable转json java_如何在PowerShell中正确地将HashTable转换为JSON?

我正在使用PowerShell向REST API发送POST请求.请求的主体如下所示:{"title": "game result","attachments": [{"image_url": "http://contoso/","title": "good work!"},{"fields": [{"title": "score","value": "100"},{"title": "bonus...

weixin_39597318的博客 266

powershell hashtable 的遍历

如下我们创建一个hashtable $hash=@{"name"="ff"}$hash.Add("dd","fffff"); 在c#中我们使用下面的句子进行遍历 foreach(DictionaryEntry de in yourHashTable) { } 但是在powershell 中此法行不通。 我使用了从下方法 1.使用foreach 遍历keys forea...

weixin_30730053的博客 300

[原创]使用PowerShell来完成像awk一样对多个文件的筛选(一)

作者: Edengundam(马涛)本篇文章引用的小例子来自如下链接:http://bbs.chinaunix.net/viewthread.php?tid=577044&extra=page%3D1%26amp%3Bfilter%3Ddigest 又是一篇重量级的精华帖, 主要讲解了awk在shell中的重要作用. 编写本篇例子, 费了我很长时间, 一

Windows PowerShell 6756

powershell format-hashTable

powershell format-hashTable $ht=@{} $ht.Add("1","55") $ht.Add("11","5555555555555555555555555555") $ht.Add("11111111111111111","5555555555555555555555555555") $ht.Keys | so...

weixin_30924239的博客 154

PowerShell中的基础数据类型

PowerShell是一个面向对象的语言,在申明变量的时候不强制要求申明数据类型,使用$开头来申明变量即可。 基本数据类型 PowerShell本身是基于.Net开发出来的,所以在.Net中的基本数据类型,在PowerShell中也可以使用,只是在PowerShell中用”[]”来标识具体的数据类型。比如[int],[long],[string],[bo...

weixin_34293141的博客 694

使用PowerShell查看Windows 补丁记录并写入数据库

目录知识储备完整代码参考文献 知识储备 在PowerShellHashTable 的表示方法如下 #定义 $HashTableArray = @( @{ Description = 'Update '; HotFixID = 'KB5003254'; InstalledBy = 'NT AUTHORITY\SYSTEM'; InstalledOn= '2021/6/13' } ) #插入 $HashTableArray.

lizhengze1117的博客 1656

PowerShell Get-Process结合hashtable

示例脚本通过哈希表对输出的结果进行格式化注意:为了测试能输出结果,本地计算机必须打开winrm quickconfigGet-Process powershell -ComputerName localhost, Server01, Server02 | Format-Table -Property Handles, @{Label="NPM(K)";Expression={...

weixin_34259159的博客 229

第一个PowerShell Module

之前写了一个Bat脚本,遍历一些指定的目录,将包含EXE文件的子目录添加至%Path%中,然后在CMD中直接【start /i 程序名字】就行了,感觉非常方便。2010年用上Win7后,看到PowerShell了,开始转向使用PowerShell,因不熟悉的缘故,在CMD与PowerShell换来换去的,直至今年年初才正式放弃CMD转投PowerShell了 前两年陆续写了些PowerShell

Haven200的专栏 6057

爆破字典中常用的用户名

爆破字典中常用的用户名,用户名数量不多,但都是使用频率较高的,具有相当高的价值。请务必下载爆破字典中常用的用户名,用户名数量不多,但都是使用频率较高的,具有相当高的价值。请务必下载

上一篇: [PowerShell教程][09]PowerShell中的数组使用
下一篇: 用PowerShell打开或关闭光驱
PowerShell
博客等级 码龄19年 103粉丝 110原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值