about_Operators
应用到: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0
主题
about_Operators
简短说明
介绍 Windows PowerShell 所支持的所有运算符。
详细说明
运算符是你可以在命令或表达式中使用的语言元素。Windows PowerShell 支持多种类型的运算符来帮助你操作值。
算术运算符
使用算术运算符(+、-、*、/、%)计算命令或表达式中的值。使用这些运算符,你可以对值执行加、减、乘或除运算,并计算除法运算的余数(模数)。
你还可以对字符串、数组和哈希表使用算术运算符。加法运算符将元素连接起来。乘法运算符返回指定数量的每个元素副本。
有关详细信息,请参阅 about_Arithmetic_Operators。
赋值运算符
使用赋值运算符(=、+=、-=、*=、/=、%=)将一个或多个值分配给变量,以更改变量中的值,并将值附加到变量。你还可以将变量转换为任何 Microsoft.NET Framework 数据类型,例如字符串或 DateTime 或者 Process 变量。
有关详细信息,请参阅 about_Assignment_Operators。
比较运算符
使用比较运算符(-eq、-ne、-gt、-lt、-le、-ge)比较值和测试条件。例如,你可以比较两个字符串值以确定它们是否平等。
比较运算符包含匹配运算符(-match、-notmatch),可通过使用正则表达式查找模式;替换运算符 (-replace),可使用正则表达式更改输入值;类似运算符(-like、-notlike),可使用通配符 (*) 查找模式;以及包含运算符(-in、-notin、-contains、-notcontains),可确定测试值是否显示在参考集中。
它们还包含按位运算符(-bAND、-bOR、-bXOR、-bNOT),用于操作值中的位模式。
有关详细信息,请参阅 about_Comparison_Operators
逻辑运算符
使用逻辑运算符(-and、-or、-xor、-not、!)将条件语句连接到单个复杂条件。例如,你可以使用逻辑 -and 运算符创建带有两个不同条件的对象筛选器。
有关详细信息,请参阅 about_Logical_Operators。
重定向运算符
使用重定向运算符(>、>>、2>、2> 和 2>&1)将命令或表达式的输出发送到文本文件。重定向运算符的工作方式类似于 Out-file cmdlet(不带参数),但是它们还允许你将错误输出重定向到指定的文件。你还可以使用 Tee-Object cmdlet 重定向输出。
有关详细信息,请参阅 about_Redirection。
拆分和联接运算符
-split 和 -join 运算符可拆分和组合子字符串。–split 运算符将字符串拆分为子字符串。-join 运算符将多个字符串连接成单个字符串。
有关详细信息,请参阅 about_Split 和 about_Join。
类型运算符
使用类型运算符(-is、-isnot、-as)查找或更改对象的 .NET Framework 类型。
有关详细信息,请参阅 about_Type_Operators。
一元运算符
使用一元运算符递增或递减变量或对象属性,并将整数设置为正数或负数。例如,若要将变量 $a 从 9 递增到 10,请键入 $a++。
特殊运算符
使用特殊运算符执行无法由其他类型的运算符执行的任务。例如,特殊运算符允许你执行运行命令和更改值的数据类型等运算。
@( ) 数组子表达式运算符
将一个或多个语句的结果返回为数组。如果只有一个项,则该数组只有一个成员。
@(Get-WMIObject win32_logicalDisk)
& 调用运算符
运行命令、脚本或脚本块。调用运算符(也称为“调用运算符”)可使你运行存储在变量中并由字符串表示的命令。由于调用运算符不会解析命令,因此它无法解释命令参数。
C:\PS> $c = "get-executionpolicy"
C:\PS> $c
get-executionpolicy
C:\PS> & $c
AllSigned
[ ] 强制转换运算符
将对象转换或限制为指定的类型。如果无法转换对象,则 Windows PowerShell 将生成错误。
[datetime]$birthday = "1/20/88"
[int64]$a = 34
, 逗号运算符
作为二元运算符,逗号将创建数组。作为一元运算符,逗号将创建带有一个成员的数组。将逗号放在该成员前面。
$myArray = 1,2,3
$SingleArray = ,1
. 使用点获得来源运算符
在当前范围中运行脚本,以便该脚本创建的任何函数、别名和变量都添加到当前范围。
. c:\scripts.sample.ps1
注意:使用点获得来源运算符后跟空格。使用空格将点与表示当前目录的点 (.) 符号区分开来。
在以下示例中,当前目录中的 Sample.ps1 脚本在当前范围中运行。
. .\sample.ps1
-f 格式运算符
使用字符串对象的 format 方法设置字符串格式。在运算符的左侧输入格式字符串,在运算符的右侧输入要进行格式设置的对象。
C:\PS> "{0} {1,-10} {2:N}" -f 1,"hello",[math]::pi
1 hello 3.14
有关详细信息,请参阅 String.Format 方法 (https://go.microsoft.com/fwlink/?LinkID=166450) 和复合格式设置 (https://go.microsoft.com/fwlink/?LinkID=166451)。
[ ] 索引运算符
从带有索引的集合中选择对象,例如数组和哈希表。数组索引从零开始,因此第一个对象的索引将建立为 [0]。对于数组(仅限),你还可以使用负索引获取最后的值。哈希表通过键值进行索引。
C:\PS> $a = 1, 2, 3
C:\PS> $a[0]
1
C:\PS> $a[-1]
3
C:\PS> (get-hotfix | sort installedOn)[-1]
C:\PS> $h = @{key="value"; name="Windows PowerShell"; version="2.0"}
C:\PS> $h["name"]
Windows PowerShell
C:\PS> $x = [xml]"<doc><intro>Once upon a time...</intro></doc>"
C:\PS> $x["doc"]
intro
-----
Once upon a time...
| 管道运算符
将其前面的命令的输出发送(“管道”)到其后面的命令。当输出包含多个对象(“集合”)时,管道运算符一次发送一个对象。
get-process | get-member
get-pssnapin | where {$_.vendor -ne "Microsoft"}
. 属性取消引用运算符
访问对象的属性和方法。
$myProcess.peakWorkingSet
(get-process PowerShell).kill()
.. 范围运算符
在整数数组中表示连续整数,给定上限和下限。
1..10
10..1
foreach ($a in 1..$max) {write-host $a}
:: 静态成员运算符
调用静态属性运算符和 .NET Framework 类的方法。若要查找对象的静态属性和方法,请使用 Get-Member cmdlet 的静态参数。
[datetime]::now
$( ) 子表达式运算符
返回一个或多个语句的结果。对于单个结果,返回一个标量。对于多个结果,返回一个数组。
$($x * 23)
$(Get-WMIObject win32_Directory)
另请参阅
about_Arithmetic_Operators
about_Assignment_Operators
about_Comparison_Operators
about_Logical_Operators
about_Type_Operators
about_Split
about_Join
about_Redirection