about_Operators
適用於: Windows PowerShell 2.0, Windows PowerShell 3.0
主題
about_Operators
簡短描述
描述 Windows PowerShell 支援的運算子。
詳細描述
運算子是您可以在命令或運算式中使用的語言元素。Windows PowerShell 支援數種運算子類型,可協助您操作值。
算術運算子
您可以使用算術運算子 (+、-、*、/、%) 來計算命令或運算式中的值。透過這些運算子,您可以加減乘除值,以及計算除法運算的餘數 (模數)。
您也可以搭配字串、陣列和雜湊表使用算術運算子。加法運算子會串連元素。乘法運算子會傳回每個元素指定數目的複本。
如需詳細資訊,請參閱 about_Arithmetic_Operators。
指派運算子
您可以使用指派運算子 (=、+=、-=、*=、/=、%=) 將一或多個值指派給變數、變更變數中的值,以及將值附加至變數。您也可以將變數轉型為任何 Microsoft .NET Framework 資料類型,例如字串或日期時間,或 Process 變數。
如需詳細資訊,請參閱 about_Assignment_Operators。
比較運算子
您可以使用比較運算子 (-eq、-ne、-gt、-lt、-le、-ge) 來比較值和測試條件。例如,您可以比較兩個字串值來判斷是否相等。
比較運算子包含使用規則運算式來尋找模式的比對運算子 (-match、-notmatch)、使用規則運算式來變更輸入值的 replace 運算子 (-replace)、使用萬用字元 (*) 來尋找模式的 like 運算子 (-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 格式運算子
使用字串物件的格式方法來格式化字串。在運算子左側輸入格式字串,並在運算子右側輸入要格式化的物件。
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