PowerShell中的HashTable的使用

哈希表(hashtable)有時候也被稱爲:「關聯數組」或「字典」。哈希表能夠稱得上是計算機科學中最重要的數據結構之一,例如:在計算機操做系統、數據庫系統、編譯器、加密算法等計算機底層程序中,哈希表都發揮着重要的做用。哈希表提供以近乎常數時間開銷,根據數據的鍵(key)來索引到該鍵對應的值(value)。就好像使用工具書同樣,咱們老是經過目錄中項的名稱和頁碼,來檢索咱們關心的知識或信息。算法

在傳統的Unix環境中,awk程序內置的關聯數組,爲數據處理提供了便捷的手段。所以掌握哈希表類型,可使您在解決工做中的問題時候,更加駕輕就熟。數據庫

如何聲明一個哈希表對象?哈希表的建立是很是簡單的,請看以下示例:數組

PS C:/> $hash = @{}服務器

PS C:/> $hash.GetType().FullName數據結構

System.Collections.Hashtableide

PS C:/> $hash.Count工具

0加密

示例中首先使用了「@{}」語法初始化了一個空的哈希表,並將其保存在變量$hash中。接下來驗證了該對象的類型,並查看了哈希表中元素的數量,因爲只是初始化了一個空哈希表,因此返回結果是0。若是在初始化時,須要添加一些鍵值對到哈希表的話,應該使用什麼樣的語法呢?咱們只要在「@{」和「}」標記之間輸入以分號「;」分隔的鍵值對便可,鍵值對的格式:<key> = <value>。請看以下示例:spa

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

相關文章
相關標籤/搜索