PowerShell Expressions
about_Operators
about_Operator_Precedence
不同 types 参与计算,算式结果的类型为左边操作数的 type。
'b' + 2 # 'b2'
2 + 'b' # Error,'b' 不能转为 int
10 -gt 5 # True
"10" -gt 5 # False
Arithmetic Operators
about_Arithmetic_Operators
+
和 *
可以用于字符串、数组和哈希表:
'a' + 'b' # 'ab'
'a' * 3 # 'aaa'
Comparison Operators
about_Comparison_Operators
关于大小写,例如
-eq
,不区分大小写-ceq
,区分大小写-ieq
,明确指明区分大小写
-contains
, -in
, -is
等始终返回 Boolean value。除此之外,如果 input
- 是 scalar ,则返回 Boolean value
- 是 collenction,则返回匹配的 collection
"abc" -eq "abc"
# true
"abc" -eq "abc", "def"
# false
"abc", "def" -eq "abc"
# "abc"
-like
使用通配符
"Windows PowerShell" -like "*shell"
# true
-match
使用 regex。如果 input 是 scalar,将修改 $matches 自动变量
"Sunday" -match "sun"
$matches
-contains
"abc", "def", "ghi" -contains "abc"
# true
"abc", "def", "ghi" -contains "abc", "def"
# false
Logical Operators
逻辑操作符
# -and, -or, -xor, -not, !
about_Logical_Operators
Assignment Operators
about_Assignment_Operators
&
call operator &
调用命令
node.exe --version
& "C:\Program Files\nodejs\node.exe"
如果命令路径中有空格,需要用引号包裹,然后使用 &
,让 PowerShell 将该 string 当作命令。
&
也可以调用 ScriptBlocks
& { Get-Location }
三元操作符
PowerShell 不支持 ?:
三元操作符,可以用下面方式实现
$a = if ($true) { 'a' } else { '' }