本文介紹在自定義PowerShell函數時,可以使用@PSBoundParameters來將參數傳遞給另一函數。
下面,我們來創建一個Get-BIOS的函數,
代碼如下:
function Get-BIOS
{
param
(
$ComputerName,
$Path
)
Get-WmiObject -Class Win32_BIOS @PSBoundParameters
}
在這個函數中,我們并沒有作任何實際的操作,只是將輸入的參數打包傳給了Get-WmiObject這個函數。注意,我們之前在輸出PSBoundParameters變量的值時,我們是在它的前面加了一個美元符號($),即$PSBoundParameters,表示一個變量。而這里我們將參數和參數值傳給另外一個函數時,我們在PSBoundParameters之前加的是一個@符號。這是重要的一點區別!
另外,我們還可以在將參數傳遞到另一個函數之前,對接收到的參數作一定的處理,比如去掉其它一個參數。
代碼如下:
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這個參數從$PSBoundParameters中刪除掉了。這樣,傳遞到Get-WmiObject函數的參數中,就沒有這個參數了。
關于PowerShell函數將參數傳遞給另一函數,本文就介紹這么多,希望對您有所幫助,謝謝!
新聞熱點
疑難解答