本文介紹在PowerShell創(chuàng)建自定義函數(shù)時,如何添加必選參數(shù),可以使用Mandatory關(guān)鍵詞。
默認情況下,PowerShell自定義的函數(shù)中,參數(shù)都是可選的(optional)。如果要將一個參數(shù)設(shè)置為必選參數(shù),那么必須對其設(shè)置Mandatory聲明。
復(fù)制代碼 代碼如下:
function Test-Function
{
param(
[Parameter(Mandatory=$true)]
$p1,
$p2='p2'
)
Write-Host "p1=$p1, p2=$p2"
}
在上面的示例函數(shù)中,參數(shù)$p1是必選參數(shù),因為設(shè)置了Mandatory=$true,而$p2沒有做任何設(shè)置,默認是可選的。按照PowerShell函數(shù)定義的Best Practices,可選參數(shù)都要設(shè)置一個默認值的,這點要記住。
在調(diào)用這個函數(shù)的時候,如果我們直接運行Test-Function而不輸入?yún)?shù),系統(tǒng)提示我們輸入p1。
復(fù)制代碼 代碼如下:
PS> Test-Function
cmdlet Test-Me at command pipeline position 1
Supply values for the following parameters:
p1:
順便說一下,在PowerShell 3.0中,[Parameter(Mandatory=$true)] 這句可以簡寫成 [Parameter(Mandatory)],就是說“=$true”這一部分可以省略了。能少寫點肯定少寫點好,但如果少寫了,放到PowerShell 3.0之前的環(huán)境——如PowerShell 2.0,那就無法運行了。看來魚與熊掌不能得兼,我們還得要懂得取舍??!
關(guān)于PowerShell函數(shù)設(shè)置必選參數(shù),本文就介紹這么多,希望對您有所幫助,謝謝!