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