当我运行powershell命令时,为什么这个Powershell参数会被破坏?

时间:2015-10-19 00:05:54

标签: powershell

当我运行powershell命令时,我的一个参数被另一个 arg值损坏了。为什么?这看起来很简单..但它没有用:(

param (
  [switch]$help = $false,
  [string]$version,
  [string]$apiKey,
  [string]$source = $PSScriptRoot,
  [string]$destination = $PSScriptRoot,
  [string]$feedSource = "https://nuget.org",
  [string]$nuget,
  [switch]$clean = $false
)

function CleanUpInputArgs()
{
    Write-Host " **** " + $apiKey
}


CleanUpInputArgs

Busted示例:$apiKey应为null或为空。不是True。 => & '.\foo.ps1' -version 123 -nuget aaaa -feedSource bbbb -clean True

更正示例:$apiKey显示XXX。 => & '.\foo.ps1' -version 123 -nuget aaaa -feedSource bbbb -clean True -apiKey XXX

作为旁注,当我使用Windows Powershell ISE时,-apiKey arg选项会在自动完成下拉框中显示 NOT ... ???有关?

1 个答案:

答案 0 :(得分:3)

切换类型通常不会采用任何参数,因此make会传递给下一个可用参数True

如果需要将值传递给switch参数,则完成如下操作:

-ApiKey

您指定了-Clean:$someBoolVariable -Version参数具有默认值,因此下一个可用参数为-Help