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 *" |
-notlike | 無 | 判斷運算子左邊的值是否不符合運算子右邊的萬用字元運算式,即 -like 的取反。 | {{ctx.data.os}} -notlike "Windows *" |
-match | 無 | 判斷運算子左邊的值是否符合運算子右邊的規則表達式 (.NET 語法) 。為子字串比對,無需在首尾書寫 ^ / $;大小寫不敏感。規則表達式不合法時傳回 false。 | {{ctx.data.os}} -match "Windows \d+" |
-notmatch | 無 | 判斷運算子左邊的值是否不符合運算子右邊的規則表達式,即 -match 的取反。 | {{ctx.data.os}} -notmatch "Windows \d+" |
-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}} |
-like / -notlike 使用萬用字元語意,-match / -notmatch 使用規則表達式語意,兩者不能混用。
例如要匹配「Windows 後跟若干數字」應寫作 {{ctx.data.os}} -match "Windows \d+";
寫成 -like "Windows \d+" 時 \d 會被當作字面量字元。若出現不支援的運算子, 該條件比較一律傳回 false。
部分運算子參考了 PowerShell 指令碼的語法, 您可以在此處查看 PowerShell 的運算子。
2. 邏輯運算子
PML 2 目前支援下列邏輯運算子:
| 運算子 | 另寫 | 說明 | 範例 |
|---|---|---|---|
-and | && | 計算運算子左右兩邊表達式的邏輯 AND。若 x 與 y 的計算結果皆為 true, 則 x && y 的結果為 true; 否則結果為 false。若 x 的計算結果為 false, 則不會計算 y。 | {{ctx.data.version}} -eq "26.2.0" && {{ctx.data.os}} -contains "Windows" |
-or | || | 計算運算子左右兩邊表達式的邏輯 OR。若 x 或 y 其中一個計算結果為 true, 則 x || y 的結果為 true。否則結果為 false。若 x 的計算結果為 true, 則不會計算 y。 | {{ctx.data.version}} -eq "26.2.0" || {{ctx.data.os}} -notcontains "Windows" |
-xor | ^| 或 ^ | 計算運算子左右兩邊表達式的邏輯 XOR。若 x 與 y 的計算結果不同, 則 x ^| y 的結果為 true。否則結果為 false。 | {{ctx.data.version}} -eq "26.2.0" ^| {{ctx.data.os}} -contains "Windows" |
前往 MSDN 以了解更多有關邏輯運算子的內容。
3. 算術運算子
PML 2 目前支援下列算術運算子:
| 運算子 | 說明 | 範例 |
|---|---|---|
+ | 加法運算子, 用於計算運算子左右兩邊的值的和。 | {{ctx.variables.count}} + 5 |
- | 減法運算子, 用於計算運算子左右兩邊的值的差。 | {{ctx.variables.count}} - 5 |
* | 乘法運算子, 用於計算運算子左右兩邊的值的積。 | {{ctx.variables.count}} * 5 |
/ | 除法運算子, 用於計算運算子左右兩邊的值的商。 | {{ctx.variables.count}} / 5 |
% | 取模運算子, 用於計算運算子左右兩邊的值的餘數。 | {{ctx.variables.count}} % 5 |
// | 整數除法運算子, 用於計算運算子左右兩邊的值的商的整數部分。 | {{ctx.variables.count}} // 5 |
** 或 ^ | 冪運算子, 用於計算運算子左邊的值的右邊的値次方。 | {{ctx.variables.count}} ** 5 |