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