PowerShell 中 Where-Object 的使用方法
Where−Object 或(別名:Where)在 PowerShell 中用於篩選透過管道提供的輸出資料。
我們可以使用兩種方法將Where−Object應用於管道輸入。
a. 指令碼方法 -
在這種方法中,我們使用ScriptBlock透過屬性名稱、值和比較運算子來篩選輸出。
Get−Service | Where−Object{($_.StartType −eq 'Automatic') −and ($_.Status −eq 'Stopped')}您也可以使用別名:Where 代替Where−Object。
Get−Service | Where{($_.StartType −eq 'Automatic') −and ($_.Status −eq 'Stopped')}
其他語法 ‘?’(問號)也可以代替Where−Object命令使用。
Get−Service | ?{($_.StartType −eq 'Automatic') −and ($_.Status −eq 'Stopped')}以上命令將獲取 StartType 為 AUTOMATIC 且狀態為 STOPPED 的服務。
b. 比較語句 -
此方法更像是自然語言,它是在 PowerShell 3.0 版本中引入的,在此之前,只有指令碼塊方法。要使用此方法,我們將使用屬性名稱、值和比較語句,但無需指令碼塊,並使用 Property 和 Value 引數。
例如,要篩選 StartType 為 Disabled 的服務的輸出,我們將使用以下程式碼。
Get−Service | Where−Object −Property StartType −EQ −Value Disabled
當您為Where−Object命令提供單個屬性(例如陣列)時,該屬性的值將被視為布林表示式,並且當值長度不為零時,輸出為 true。
例如,
PS C:\> ("Windows","","PowerShell","","Azure") | Where−Object Length
Windows
PowerShell
Azure類似的命令有:
("Windows","","PowerShell","","Azure") | where{$_.length −gt 0}
或者,
("Windows","","PowerShell","","Azure") | Where−Object Length −GT 0
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP