PML 2 插件开发指南
插件系统运算符说明
本文档介绍 PML 2 插件系统的运算符。
PML 2 插件支持值比较运算符和逻辑运算符, 部分运算符有两种形式。
1. 值比较运算符
PML 2 目前支持以下值比较运算符:
| 运算符 | 另写 | 说明 | 示例 |
|---|---|---|---|
-eq | == | 判断运算符左右两边的值是否相等。使用object.Equals进行比较。 | {{ctx.data.version}} == "26.2.0"{{ctx.data.version}} -eq "26.2.0" |
-ne | != | 判断运算符左右两边的值是否不等。使用object.Equals的取反结果。 | {{ctx.data.version}} != "26.2.0"{{ctx.data.version}} -ne "26.2.0" |
-gt | > | 判断运算符左边的值是否大于右边的值。 | {{ctx.variables.count}} > 5{{ctx.variables.count}} -gt 5 |
-lt | < | 判断运算符左边的值是否小于右边的值。 | {{ctx.variables.count}} < 5{{ctx.variables.count}} -lt 5 |
-ge | >= | 判断运算符左边的值是否大于等于右边的值。 | {{ctx.variables.count}} >= 5{{ctx.variables.count}} -ge 5 |
-le | <= | 判断运算符左边的值是否小于等于右边的值。 | {{ctx.variables.count}} <= 5{{ctx.variables.count}} -le 5 |
-like | 无 | 判断运算符左边的值是否匹配运算符右边的正则表达式。 | {{ctx.data.os}} -like "Windows .+ \d{1,2}" |
-notlike | 无 | 判断运算符左边的值是否不匹配运算符右边的正则表达式。 | {{ctx.data.os}} -like "Windows .+ \d{1,2}" |
-contains | 无 | 如果运算符左右两边都为字符串, 则判断运算符左边的值是否包含运算符右边的值; 如果运算符左边为集合, 则判断运算符左边的集合是否包含运算符右边的值。(x ∋ y 或 x ⊇ y) | {{ctx.data.os}} -contains "Windows" |
-notcontains | 无 | 如果运算符左右两边都为字符串, 则判断运算符左边的值是否不包含运算符右边的值; 如果运算符左边为集合, 则判断运算符左边的集合是否不包含运算符右边的值。(x ∌ y 或 x ⊅ y) | {{ctx.data.os}} -notcontains "Windows" |
-in | 无 | 如果运算符左右两边都为字符串, 则判断运算符左边的值是否包含于运算符右边的值; 如果运算符右边为集合, 则判断运算符左边的值是否包含于运算符右边的集合。(x ∈ y 或 x ⊆ y) | "Windows" -in {{ctx.data.os}} |
-notin | 无 | 如果运算符左右两边都为字符串, 则判断运算符左边的值是否不包含于运算符右边的值; 如果运算符右边为集合, 则判断运算符左边的值是否不包含于运算符右边的集合。(x ∉ y 或 x ⊄ y) | "Windows" -notin {{ctx.data.os}} |
若出现了不支持的运算符, 该条件比较总是返回false。
部分运算符参考了 Powershell 脚本的语法, 您可以在此处查看 Powershell 的运算符。
2. 逻辑运算符
PML 2 目前支持以下逻辑运算符:
| 运算符 | 另写 | 说明 | 示例 |
|---|---|---|---|
-and | && | 计算运算符左右表达式的逻辑与。如果x和y的计算结果都为true, 则x && y的结果为true; 否则结果为false。如果x的计算结果为false, 则不会计算y。 | {{ctx.data.version}} -eq "26.2.0" && {{ctx.data.os}} -contains "Windows" |
-or | || | 计算运算符左右表达式的逻辑或。如果x或y中有一个计算结果为true, 则x || y的结果为true。否则, 结果为false。如果x计算结果为true, 则不计算y。 | {{ctx.data.version}} -eq "26.2.0" || {{ctx.data.os}} -notcontains "Windows" |
-xor | ^|或^ | 计算运算符左右表达式的逻辑异或。如果x和y的计算结果不同, 则x \^| y的结果为true。否则, 结果为false。 | {{ctx.data.version}} -eq "26.2.0" ^| {{ctx.data.os}} -contains "Windows" |
前往MSDN以了解更多有关逻辑运算符的内容。