Validation Powershell输入验证失败或生成异常时结束脚本
我的powershell脚本中有以下代码用于验证用户输入(脚本中的第一个位置参数): 我的问题是,当前当验证失败时,代码进入Else块并点击Break,而不是停止整个脚本继续运行,而是进入下一个块,所有内容继续,并出现更多错误Validation Powershell输入验证失败或生成异常时结束脚本,validation,powershell,Validation,Powershell,我的powershell脚本中有以下代码用于验证用户输入(脚本中的第一个位置参数): 我的问题是,当前当验证失败时,代码进入Else块并点击Break,而不是停止整个脚本继续运行,而是进入下一个块,所有内容继续,并出现更多错误 问题是,如何修改我的代码,以便当验证与正则表达式不匹配时,它将抛出适当的错误消息并停止整个脚本的运行?将脚本中的$ErrorActionPreference变量设置为Stop: $ErrorActionPreference = 'Stop' function valid
问题是,如何修改我的代码,以便当验证与正则表达式不匹配时,它将抛出适当的错误消息并停止整个脚本的运行?将脚本中的
$ErrorActionPreference
变量设置为Stop
:
$ErrorActionPreference = 'Stop'
function validatePath {
Param
(
[Parameter(Mandatory=$true)]
[ValidateScript({
If ($_ -match "^([a-z]:\\(?:[-\\w\\.\\d])*)") {
$True
} Else {
Write-Host "Please enter a valid path,$_ is not a valid path."
Write-debug $_.Exception
Break
}
})]
[string]$filePath
)
Process
{
Write-Host "The path is "$filePath
}
}
validatePath -filePath $args[0]
Do-MoreStuff # this won't execute if parameter validation fails in the previous call
有关更多信息,请参见使用“退出”停止整个脚本。将任何消息放在“退出”之前。不起作用,在我在块内设置退出后,脚本仍在运行。
$ErrorActionPreference = 'Stop'
function validatePath {
Param
(
[Parameter(Mandatory=$true)]
[ValidateScript({
If ($_ -match "^([a-z]:\\(?:[-\\w\\.\\d])*)") {
$True
} Else {
Write-Host "Please enter a valid path,$_ is not a valid path."
Write-debug $_.Exception
Break
}
})]
[string]$filePath
)
Process
{
Write-Host "The path is "$filePath
}
}
validatePath -filePath $args[0]
Do-MoreStuff # this won't execute if parameter validation fails in the previous call