我想在这个脚本中的第二个函数调用抛出一个错误:
function Deploy
{
param(
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$BuildName
)
Write-Host "Build name is: $BuildName"
}
Deploy "Build123"
Deploy #Currently prompts for input
Run Code Online (Sandbox Code Playgroud)
提示非常适合以交互方式使用脚本,但这也将由我们的构建服务器执行.
我最好的选择是用某种if东西做一些自定义验证吗?
Sha*_*evy 49
一旦参数被标记为必需,PowerShell将提示输入值.也就是说,如果删除强制属性,则可以使用throw语句设置默认值:
function Deploy
{
param(
[Parameter()]
[ValidateNotNullOrEmpty()]
[string]$BuildName=$(throw "BuildName is mandatory, please provide a value.")
)
Write-Host "Build name is: $BuildName"
}
Run Code Online (Sandbox Code Playgroud)
ohw*_*ohw 21
@Emperor XLII在这个问题上有一个很好的评论,我认为对于某些用例来说这是一个更好的答案:
如果
powershell.exe使用该-NonInteractive标志运行,则缺少必需参数将导致错误并导致该进程的非零退出代码.
使用它的原因可能是:
Mandatory=$true参数,转换所有这些参数的成本很高.| 归档时间: |
|
| 查看次数: |
16325 次 |
| 最近记录: |