当我运行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 ... ???有关?
答案 0 :(得分:3)
切换类型通常不会采用任何参数,因此make
会传递给下一个可用参数True
。
如果需要将值传递给switch参数,则完成如下操作:
-ApiKey
您指定了-Clean:$someBoolVariable
,-Version
参数具有默认值,因此下一个可用参数为-Help
。