azure - 为什么在使用 -notMatch 条件验证参数时会满足此条件?
问题描述
我正在使用 Powershell 验证传递到发布管道的参数。我作为管道变量传递的参数是val1
. 下面是我的代码:
if ("$(Value)" -notMatch "val1" -or "$(Value)" -notMatch "val2"){
Write-Host "$(Value) must be val1 || val2"
Write-Host "Value of param: "$(Value)""
exit 1
}
当我打印我的价值是 states val1
。为什么会满足这个条件?我想也许是因为它区分大小写,但是即使我修改条件以捕捉确切的情况,它仍然被满足。
解决方案
如果您的变量应该只有val1
or val2
,则必须-and
改用-or
。
if ("$(Value)" -notMatch "val1" -and "$(Value)" -notMatch "val2"){
Write-Host "$(Value) must be val1 || val2"
Write-Host "Value of param: "$(Value)""
exit 1
}
推荐阅读
- arangodb - 使用 Foxx CLI 创建服务
- spring-boot - 在本地使用 Spring Cloud 运行带有 Timer Trigger 的 Azure Function
- python - 一次在多个 xml 文件中添加 <value> 行
- python - 获取对应于条件字段过滤器创建的最后一个 Django 数据库模型实例?
- jquery - 将鼠标悬停在图像上时在鼠标指针处显示图像
- c++ - 我打电话给删除,但我的 d-tor 没有被调用,为什么?
- php - 将 doc 和 docx 转换为图像
- amazon-web-services - Kubernetes RBAC:即使用户似乎拥有所需的权限,也无法获得 cronjob
- python - 如何加载三角矩阵并使其对称
- javascript - 在 GraphQL Resolvers 文件中定义一个函数