PowerShell-自定義函數(四)-位置參數:Position

這一篇我們來講一下位置參數.什麼是位置參數呢?直白點說就是隻要你按照一定的順序輸入值,而不需要特別去把參數寫出來.


例如我們用的Get-Service BITS 就直接可以獲取到BITS服務的信息,而完整的寫法應該是:Get-Service -Name BITS .這種效果我們就可以使用位置參數來做到.


因爲Get-Service的第1位置參數是-Name,所以我們把-Name省略掉,直接填寫服務名BITS也能正確的運行.


使用位置參數可以減少我們重複輸入參數名的代碼輸入量,加快我們操作的速度.

 

目標

1.輸入姓名和年齡後,直接在顯示 某某 今年 多少 歲 .

2.強制使用Name參數.

3.指定Name爲第1位置參數,Age爲第2位置參數.

 

示例:

Function Test-Function {
    Param      
   (       
   [parameter(
    Mandatory = $true,
    Position = 0
    )]
    $Name,
   [parameter(
   Position = 1
   )]
    $Age = "18"
    )
    
    Write-Host "$Name 今年 $Age 歲." 
}

 

說明:

與上篇文章中相比,我們將Name的位置指定爲第1個,給Age參數也加上了位置參數並指定爲第2個.這裏注意一下是順序是從0開始.0代表第1個,1代表第二個,依此類推.

 

運行結果:

image

 

可以看到我並沒有指定彪鍋和20分別由哪個參數來接受,但PowerShell根據位置參數正確的將他們賦予至我們希望的參數之中.


但還有一個問題,也許我剛剛寫的時候我還能夠記得,Name是第1個參數,Age是第2個參數.但過一段時間以後,不至於要去翻代碼看才知道吧?那太麻煩了.


這個時候就可以祭出Get-Help這個大殺器了.PowerShell會自動的幫我們生成一些簡單的幫助信息,如下:

image

圖中我們可以看到在參數的幫助信息中,PowerShell爲我們列出了第個參數的位置信息.Name位置是0代表是第1個參數.Age位置是1代碼是第2個參數.上一篇所講的的強制參數在這裏也有顯示.


至於其他的參數設置,後續會繼續爲大家進行說明.(如果我能堅持寫完這個系列不爛尾的話...)j_0011.gif

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章