本文介紹在自定義PowerShell函數(shù)時,可以使用@PSBoundParameters來將參數(shù)傳遞給另一函數(shù)。
下面,我們來創(chuàng)建一個Get-BIOS的函數(shù),
復制代碼 代碼如下:
function Get-BIOS
{
param
(
$ComputerName,
$Path
)
Get-WmiObject -Class Win32_BIOS @PSBoundParameters
}
在這個函數(shù)中,我們并沒有作任何實際的操作,只是將輸入的參數(shù)打包傳給了Get-WmiObject這個函數(shù)。注意,我們之前在輸出PSBoundParameters變量的值時,我們是在它的前面加了一個美元符號($),即$PSBoundParameters,表示一個變量。而這里我們將參數(shù)和參數(shù)值傳給另外一個函數(shù)時,我們在PSBoundParameters之前加的是一個@符號。這是重要的一點區(qū)別!
另外,我們還可以在將參數(shù)傳遞到另一個函數(shù)之前,對接收到的參數(shù)作一定的處理,比如去掉其它一個參數(shù)。
復制代碼 代碼如下:
function Get-BIOS
{
param
(
$SomethingElse,
$ComputerName,
$Path
)
$null = $PSBoundParameters.Remove('SomethingElse')
“The parameter $SomethingElse still exists but will not get splatted”
Get-WmiObject -Class Win32_BIOS @PSBoundParameters
}
看到了嗎,我們在上面把SomethingElse這個參數(shù)從$PSBoundParameters中刪除掉了。這樣,傳遞到Get-WmiObject函數(shù)的參數(shù)中,就沒有這個參數(shù)了。
關(guān)于PowerShell函數(shù)將參數(shù)傳遞給另一函數(shù),本文就介紹這么多,希望對您有所幫助,謝謝!
您可能感興趣的文章:- PowerShell使用枚舉變量定義帶智能提示功能的函數(shù)參數(shù)