gpt4 book ai didi

PowerShell Param() 语句 + 错误陷阱

转载 作者:行者123 更新时间:2023-12-03 23:02:04 25 4
gpt4 key购买 nike

我们使用以下语句使 TeamCity 能够识别我们的 PowerShell 部署脚本中的错误:

trap { $host.SetShouldExit(1) }

然而,这工作正常,因为 Param(...) 需要成为我们必须使用此顺序的第一个语句:

Param(
...
)

Set-StrictMode -Version 2.0
$ErrorActionPreference = "Stop"
trap { $host.SetShouldExit(1) }

有没有办法在 Param() 评估期间也捕获错误?例如。如果我们省略强制参数,TeamCity 目前无法检测到。

最佳答案

这是对 Powershell 的又一次恼人的疏忽。我发现解决此 Powershell 错误的最佳方法是推出您自己的强制验证。它的代码更多,但清晰、简单且故障安全。

首先从 param 声明中删除强制标志,并在脚本开头检查 null 或 empty。

param (
[string] $required_param
)
# Check required params
if ([string]::IsNullOrEmpty($required_param)) {
Write-Host "The required_param is required."
exit 1;
}

另外,您可以使用常规文件参数调用您的脚本:

powershell -File foo.ps1

希望这对您有所帮助。

关于PowerShell Param() 语句 + 错误陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20403009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com