本文介紹在自定義PowerShell函數(shù)時(shí),使用Hash表作為參數(shù),它相當(dāng)于將Hash表中的鍵當(dāng)作參數(shù)名,而鍵的值當(dāng)作參數(shù)值。
先直接看看這個(gè)以Hash表作為參數(shù)賦值給函數(shù)的示例:
復(fù)制代碼 代碼如下:
$hash = @{
Path = $env:windir
Filter = ‘*.ps1'
Recurse = $true
ErrorAction = ‘SilentlyContinue'
}
Get-ChildItem @hash
Get-ChildItem這個(gè)cmdlet,相當(dāng)于DOS下的dir,列出目錄下的子目錄和文件。它有很多參數(shù),其中Path表示要列出的目錄路徑;Filter可以對(duì)列出的文件進(jìn)行篩選,即只列出想要文件類型;Recurse表示是否遍歷,即是否列出子目錄中的文件夾和文件。ErrorAction參數(shù)表示如果出錯(cuò)了(遇到無法列出的內(nèi)容時(shí))應(yīng)該怎么辦。
那么正常情況下,我們應(yīng)該使用的PowerShell腳本如下:
復(fù)制代碼 代碼如下:
Get-ChildItem -Path $env:windir -Filter *.ps1 -Recurse -ErrorAction SilentlyContinue
這表示列出Windows安裝目錄下的所有的.ps1后綴的文件。這個(gè)命令和我們最上面給出的Hash表作為參數(shù)的調(diào)用方式,效果完全一樣。
所以,大家看出來了,以Hash表作為輸入?yún)?shù),它的鍵值對(duì)將分逐一分解成參數(shù)名和參數(shù)值賦值給函數(shù)。
關(guān)于PowerShell函數(shù)以Hash表作為參數(shù),本文就介紹這么多,希望對(duì)您有所幫助,謝謝!