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