PowerShell函數(shù)跟其它的編程語言的函數(shù)差不多,主要涉及輸入?yún)?shù)、處理、輸出參數(shù)、返回值、如何調(diào)用等方面的內(nèi)容,下面逐一介紹。
1、PowerShell函數(shù)定義
定義函數(shù)使用function關(guān)鍵字,使用自定義的標識符作為函數(shù)名,使用一對大括號括起函數(shù)體。如下:
復(fù)制代碼 代碼如下:
function 函數(shù)名>{
函數(shù)體>;
}
舉例:
復(fù)制代碼 代碼如下:
function Test-Fun{
$args0 = $args[0]
$args1 = $args[1]
Write-Host "p1=$args[0], p2=$args[1]"
Write-Host "p1=$args0, p2=$args1"
}
在做這個例子的時候,洪哥遇到了很悲推的一幕。感覺完全相同的兩種輸出方式,結(jié)果是截然不同。洪哥只能說,雙引號中的$args變量,居然不管后面的中括號和下標,真TMD的太詭異了,慎用!真相如下:
復(fù)制代碼 代碼如下:
PS > function Test-Fun{
>> $args0 = $args[0]
>> $args1 = $args[1]
>> $msg = "p1=$args[0], p2=$args[1]"
>> Write-Host "p1=$args[0], p2=$args[1]"
>> Write-Host $msg
>> Write-Host "p1=$args0, p2=$args1"
>> }
>>
PS > test-fun 111 222
p1=111 222[0], p2=111 222[1]
p1=111 222[0], p2=111 222[1]
p1=111, p2=222
2、PowerShell函數(shù)輸入?yún)?shù)
在函數(shù)體中,使用Param()方法來定義函數(shù)的輸入?yún)?shù),如下:
復(fù)制代碼 代碼如下:
function 函數(shù)名>{
Param($p1,$p2,...);
函數(shù)體>;
}
關(guān)于PowerShell函數(shù)輸入?yún)?shù)的更多詳細介紹,比如“位置參數(shù)”、“名稱參數(shù)”、“參數(shù)屬性”等,請移步“PowerShell教程之PowerShell函數(shù)輸入?yún)?shù)”。
3、PowerShell函數(shù)返回值
PowerShell會把所有函數(shù)體中的輸出打包成一個System.Array對象當作返回值。雖然PowerShell也支持return語句,但是洪哥前面講的這句話仍然有效。所以,這個return就是擺設(shè)。
4、PowerShell函數(shù)調(diào)用
函數(shù)的調(diào)用很簡單,跟VB調(diào)用函數(shù)的方式差不多。如下:
復(fù)制代碼 代碼如下:
函數(shù)名> [[-參數(shù)名1] 參數(shù)值1[, [-參數(shù)名2] 參數(shù)值2], ...]
舉例:
Test-Fun "參數(shù)值"
Test-Fun "參數(shù)值1", "參數(shù)值2", "參數(shù)值3"
Test-Fun -p1 "參數(shù)值1" -p2 "參數(shù)值2"
您可能感興趣的文章:- PowerShell中對函數(shù)參數(shù)的命名建議
- PowerShell定義函數(shù)參數(shù)的2種方法和傳參方法實例
- PowerShell函數(shù)參數(shù)指定數(shù)據(jù)類型實例