我希望此脚本中的第二个函数调用引发错误:

function Deploy
{

param(

    [Parameter(Mandatory=$true)]
    [ValidateNotNullOrEmpty()]
    [string]$BuildName

    )
    Write-Host "Build name is: $BuildName"

}

Deploy "Build123"

Deploy #Currently prompts for input

提示对于交互式使用脚本非常有用,但这也将由我们的构建服务器执行。

我最好的选择是只是使用if或其他方式进行自定义验证吗?

最佳答案

一旦将该参数标记为强制性,PowerShell将提示输入值。也就是说,如果删除了强制属性,则可以使用throw语句设置默认值:

function Deploy
{
    param(
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [string]$BuildName=$(throw "BuildName is mandatory, please provide a value.")
    )

    Write-Host "Build name is: $BuildName"
}

10-04 19:40