我希望我的脚本接受可选“-build”参数,也可选指定构建目标。如果用户指定-build而未指定值,则将使用默认目标。所以
doit.ps1
不会进行构建。 (它做其他事情)
doit.ps1 -build
将构建c:\ source \ myproj.sln
和
doit.ps1 -build c:\otherssource.sln
当然会构建该项目。
我看不出怎么做。如果指定了字符串parm,则需要一个值,而switch parm不支持值。建议?
答案 0 :(得分:0)
据我所知,在PowerShell中,一个用作开关的参数,这是你的第一个案例无法估价,一个不是开关的参数需要一个值。以下是一段代码,可帮助您使用$PSBoundParameters
解决问题。
Param
(
#[CmdletBinding()]
[parameter(Mandatory=$false)]
[switch]$Builddefault,
[String]$Build
)
Write-host 'Hello'
if ($PSBoundParameters.Keys -contains 'Builddefault')
{
Write-Host "Builddefault is present"
}
if ($PSBoundParameters.Keys -contains 'Build')
{
Write-Host "Build is present"
}