主题
    about_Parameters

简短说明
    说明如何在 Windows PowerShell 中使用 cmdlet 参数。


详细说明
    大多数 Windows PowerShell cmdlet 和函数都依赖参数让用户选择选项或提供输入。参数放在 
    cmdlet 或函数名称后面,通常采用以下格式:


        -<parameter_name> <parameter_value>


    参数名称前面有连字符 (-),它通知 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




目录