发现用于使用 PowerShell cmdlet 的参数
参数修改 cmdlet 执行的操作。 可不为 cmdlet 指定参数或为其指定一个参数或多个参数。
参数格式
参数名称以短划线 (-) 开头。 空格用于分隔要从参数名称传递的值。 如果传递的值包含空格,需要用引号将文本引起来。 某些参数接受多个值,这些值必须用逗号分隔(不含空格)。
可选参数与必需参数
参数可以为可选参数或必需参数。 如果是必需参数,而运行 cmdlet 时没有提供该参数的值,Windows PowerShell 会提示你为其提供值。 例如,如果运行 Get-Item 命令,会收到来自 Windows PowerShell 的以下消息,其中包括为 -Path 参数提供值的提示:
PS C:\> Get-Item
cmdlet Get-Item at command pipeline position 1
Supply values for the following parameters:
Path[0]:
如果在提示符处输入文本 C:\,然后按 Enter 键两次,该命令将成功运行。 由于此参数可以接受多个值,因此必须按 Enter 键两次。 Windows PowerShell 会继续提示输入新值,直到按 Enter 键为止(实际上不用提供值)。
在某些情况下,可选择不输入参数名称,只需输入参数的值即可。 运行命令 Get-ChildItem C:\ 与运行命令 Get-ChildItem -Path C:\ 相同,因为参数 -Path 在 cmdlet 定义中定义为第一个参数。 这称为位置参数。 在本课程中,你会注意到这些内容。 省略参数名称仅在定义了参数位置时才适用。 并非所有命令都包含位置参数。
交换机
开关是一种特殊情况。 从根本上来说,它们是接受布尔值(true 或 false)的参数。 它们与实际布尔参数的不同之处在于,仅当运行命令时包含了开关,该值才能设置为 true。 一个示例是 Get-ChildItem cmdlet 的 -Recurse 参数或开关。 Get-ChildItem c:\ -Recurse 命令不仅会返回 C:\ 目录中的项,还会返回其所有子目录中的项。 如果没有 -Recurse 开关,将仅返回 C:\ 目录中的项。