主題
    about_Parameters

簡短描述
    說明如何在 Windows PowerShell 中使用 Cmdlet 參數。


完整描述
    大部分的 Windows PowerShell Cmdlet 和函數都需要參數,以便讓使用者選取選項或
    提供輸入。參數附在 Cmdlet 或函數名稱後面,並且通常具有下列格式:


        -<參數名稱> <參數值>


    參數名稱前面的連字號 (-) 係告知 Windows PowerShell,連字號後面的單字是參數而
    非傳遞給 Cmdlet 或函數的值。並非所有的參數都需要參數值,而且有時候並不需要指定
    參數名稱。在某些情況下,參數名稱屬於隱含性質,不需要包含在命令中。

    
    參數的型別以及各種參數的需求因 Cmdlet 及函數而異。若要尋找 Cmdlet 之參數的相關
    資訊,請使用 Get-Help Cmdlet。例如,若要尋找 Get-ChildItem Cmdlet 之參數
    的相關資訊,請輸入:


        get-help get-childitem


    若要尋找函數之參數的相關資訊,請檢視參數定義。參數定義在函數名稱後面,或在函數
    的主體中,並使用 Param 關鍵字。如需詳細資訊,請參閱 about_Functions。


    有些函數還包含與參數相關的註解架構說明。請將 Get-Help Cmdlet 與這些函數搭配使
    用。如需詳細資訊,請參閱 Get-Help 的說明主題和 about_Comment_Based_Help。


    Get-Help Cmdlet 會傳回 Cmdlet 或函數的各種相關詳細資料,包括 Cmdlet 或函數
    的描述、命令語法、參數的相關資訊,以及說明如何使用 Cmdlet 或函數的範例。
 

    您也可以使用 Get-Help Cmdlet 或函數的 Parameter 參數,來尋找特定參數的相關
    資訊。或者,您可以使用萬用字元 (*) 搭配 Parameter 參數,尋找 Cmdlet 或函數
    的所有參數的相關資訊。例如,下列命令會取得 Get-Member Cmdlet 或函數所有參數
    的相關資訊:


        get-help get-member -parameter *


    這些資訊包含了使用參數需知的詳細資料。例如,Get-ChildItem Cmdlet 的說明主題包
    含 Path 參數的下列詳細資料:

        -path <string[]>
            指定一個或多個位置的路徑。允許使用萬用字元。預設位置為目前目錄 (.)。

        必要?                    false
        位置?                    1
        預設值                   目前的目錄
        接受管線輸入?            true (ByValue, ByPropertyName) 
        接受萬用字元?            true


    參數資訊包含參數語法、參數說明以及參數屬性。
    以下各節將說明參數屬性。


  必要參數?
    此設定指出參數是否為必要的,亦即,使用此 Cmdlet 的所有命令是否都必須包括此參數。
    當值為 "True" 而命令中遺失參數時,Windows PowerShell 會提示您輸入參數的值。


  參數位置?
    這項設定指出,提供參數的值時,前面是否必須加上參數名稱。如果設定為 "0" 或 
    "named",則必須提供參數名稱。這種參數稱為具名參數。具名參數可以列在 Cmdlet 名
    稱後面的任意位置上。


    如果「參數位置?」設定為 0 以外的整數,參數名稱就不是必要的。這種參數稱為位置參
    數,而其數字則指出此參數必須出現的位置,代表位置參數之間的位置關係。指定位置參
    數時若加上參數名稱,則可將參數列在 Cmdlet 名稱後面的任意位置上。


    例如,Get-ChildItem Cmdlet 具有 Path 和 Exclude 參數, Path 的「參數位置?」
    設定為 1,所以是位置參數。而 Exclude 的「參數位置?」設定為 0,所以是具名參數。


    這表示 Path 不需提供參數名稱,但是其參數值必須是命令中第一個或唯一未具名的參數
    值。不過,由於 Exclude 參數是具名參數,因此可以放在命令的任意位置上。


    基於這兩個參數的「參數位置?」設定結果,您可以使用下列任何一個命令:


        Get-ChildItem -path c:\techdocs -exclude *.ppt
        Get-ChildItem c:\techdocs -exclude *.ppt
        Get-ChildItem -exclude *.ppt -path c:\techdocs
        Get-ChildItem -exclude *.ppt c:\techdocs


    若再加上另一個不含參數名稱的位置參數,就必須依「參數位置?」設定所指定的順序來放置該參數。


  參數型別
    此設定指定參數值的 Microsoft .NET Framework 型別。例如,如果型別為 Int32,則參數
    值必須為整數。如果型別為 string,則參數值必須為字元字串。若字串中包含空格,
    則參數值必須置於引號中,或者空格前面必須加上逸出字元 (`)。


  預設值
    這項設定會為沒有提供任何值的參數指定假定值。例如,Path 參數的預設值通常是目前的
    目錄。必要參數永遠沒有預設值。許多選擇性參數也沒有預設值,因為是否使用該參數並
    沒有影響。


  接受多個值?
    這項設定指出參數是否接受多個參數值。當參數接受多個值時,您可以在命令內輸入以逗
    號分隔的清單做為參數值,或將逗號分隔的清單 (陣列) 儲存至變數,然後指定該變數做為
    參數值。


    例如,Get-Service Cmdlet 的 ServiceName 參數即接受多個值。以下兩個命令都有效:


        get-service -servicename winrm, netlogon


        $s = "winrm", "netlogon"
        get-service -servicename $s


  接受管線輸入?
    這項設定指出,能否使用管線運算子 (|) 傳送值給參數。

    
    值                       描述
    -----                    -----------
    False                    表示您不能透過管線將值傳遞給參數。


    True (by Value)          表示您可以透過管線傳遞任何值給參數,只要
                             該值具有參數所指定的 .NET Framework 型別,或值可轉換為指定的 
                             .NET Framework 型別。


                             當參數是 "True (by Value)" 時,Windows PowerShell 
                             在嘗試以其他方法解譯命令前,會先嘗試將管線傳遞的值關聯至該參數。


    True (by Property Name)  表示您可以透過管線傳遞值給參數,
                             但參數的 .NET Framework 型別必須含有與參數名稱相同的屬性。
 
                             例如,只有當要傳遞的值具有名為 "Name" 的屬性時,您才
                             能透過管線將值傳遞給 Name 參數。


  接受萬用字元?
    這項設定指出,參數的值能否包含萬用字元,讓參數值可與目標容器中的多個現有項目進行比對。


  一般參數
    一般參數是指可搭配任何 Cmdlet 使用的參數。
    如需一般參數的詳細資訊,請輸入:


        help about_commonparameters


請參閱
    about_Command_syntax
    about_Comment_Based_Help
    about_Functions_Advanced
    about_Pipelines
    about_Wildcards




目錄