本文介紹在自定義PowerShell函數(shù)時(shí),可以使用@PSBoundParameters來(lái)將參數(shù)傳遞給另一函數(shù)。
下面,我們來(lái)創(chuàng)建一個(gè)Get-BIOS的函數(shù),
復(fù)制代碼 代碼如下:
function Get-BIOS
{
param
(
$ComputerName,
$Path
)
Get-WmiObject -Class Win32_BIOS @PSBoundParameters
}
在這個(gè)函數(shù)中,我們并沒(méi)有作任何實(shí)際的操作,只是將輸入的參數(shù)打包傳給了Get-WmiObject這個(gè)函數(shù)。注意,我們之前在輸出PSBoundParameters變量的值時(shí),我們是在它的前面加了一個(gè)美元符號(hào)($),即$PSBoundParameters,表示一個(gè)變量。而這里我們將參數(shù)和參數(shù)值傳給另外一個(gè)函數(shù)時(shí),我們?cè)赑SBoundParameters之前加的是一個(gè)@符號(hào)。這是重要的一點(diǎn)區(qū)別!
另外,我們還可以在將參數(shù)傳遞到另一個(gè)函數(shù)之前,對(duì)接收到的參數(shù)作一定的處理,比如去掉其它一個(gè)參數(shù)。
復(fù)制代碼 代碼如下:
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
}
看到了嗎,我們?cè)谏厦姘裇omethingElse這個(gè)參數(shù)從$PSBoundParameters中刪除掉了。這樣,傳遞到Get-WmiObject函數(shù)的參數(shù)中,就沒(méi)有這個(gè)參數(shù)了。
關(guān)于PowerShell函數(shù)將參數(shù)傳遞給另一函數(shù),本文就介紹這么多,希望對(duì)您有所幫助,謝謝!
您可能感興趣的文章:- PowerShell使用枚舉變量定義帶智能提示功能的函數(shù)參數(shù)