Get-Unique
從排序清單傳回唯一項目。
語法
Get-Unique [-AsString] [-InputObject <psobject>] [<CommonParameters>]
Get-Unique [-OnType] [-InputObject <psobject>] [<CommonParameters>]
描述
Get-Unique Cmdlet 會將排序清單中的每個項目與下一個項目做比較、刪除重複項目,然後只傳回每個項目的一個執行個體。清單必須經過排序,才能使 cmdlet 正確執行。
參數
-AsString
將資料視為字串。若沒有此參數,資料會被視為物件,因此當您將相同型別的物件集合 (例如檔案集合) 送出給 Get-Unique 時,它就只會傳回一個物件 (第一個物件)。使用此參數可找出物件屬性 (例如檔案名稱) 未重複的值。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-InputObject <psobject>
接受 Get-Unique 的輸入。請輸入包含物件的變數,或輸入可取得物件的命令或運算式。
Get-Unique 會將以 InputObject 參數送出的輸入視為集合,而且不會列舉集合中的個別項目。由於集合是單一項目,使用 InputObject 所提交的輸入始終都將原封不動地傳回。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByValue) |
接受萬用字元? |
false |
-OnType
每一種類型只傳回一個物件。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
System.Management.Automation.PSObject 您可經由管道將任何物件類型輸出至 Get-Unique。 |
輸出 |
System.Management.Automation.PSObject Get-Unique 所傳回的物件類型是由輸入所決定。 |
附註
您也可以利用內建的別名 "gu" 來參照 Get-Unique。如需詳細資訊,請參閱 about_Aliases。
若要排序清單,請使用 Sort-Object。您也可以使用 Sort-Object 的 Unique 參數,在清單中尋找唯一項目。
範例 1
C:\PS>$a = $(foreach ($line in get-content C:\Test1\File1.txt) {$line.tolower().split(" ")}) | sort | get-unique
C:\PS> $a.count
描述
-----------
這些命令將找出文字檔中共有多少不同的單字。
第一個命令取得 File.txt 檔案的內容,並將每一行文字轉換為小寫字母,然後在空格 (" ") 處,將每個單字分割到個別的一行。接著,依字母順序 (預設) 排序產生的清單,並使用 Get-Unique Cmdlet 來刪除任何重複的單字。結果會儲存在 $a 變數中。
第二個命令使用 $a 中的字串集合的 Count 屬性來判斷 $a 內有多少項目。
範例 2
C:\PS>1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | sort-object | Get-Unique
描述
-----------
這個命令將找出一組整數中的唯一成員。第一個命令接受命令列輸入的整數陣列,並經由管道輸出至 Sort-Object Cmdlet 進行排序,然後再經由管道輸出至 Get-Unique,以刪除結果中的重複項目。
範例 3
C:\PS>get-childitem | sort-object {$_.GetType()} | unique -OnType
描述
-----------
這個命令會使用 Get-ChildItem Cmdlet 來擷取本機目錄的內容,此目錄含有檔案及其他目錄。管線運算子 (|) 會將結果傳送到 Sort-Object Cmdlet。"$_.GetType()" 陳述式將 GetType 方法套用到每個檔案或目錄。接著,Sort-Object 會依據類型排序項目。另一個管線運算子會將結果傳送至 Get-Unique。OnType 參數指示 Get-Unique 只傳回每個類型中的一個物件。
範例 4
C:\PS>get-process | sort-object | select processname | get-unique -asstring
描述
-----------
這個命令取得電腦上執行的處理序名稱,並刪除重複的名稱。
Get-Process 命令會取得電腦上的所有處理序。管線運算子 (|) 會將結果傳遞給 Sort-Object,後者預設會根據 ProcessName 的字母順序排序處理序。結果會經由管道輸出至 Select-Object Cmdlet,此 Cmdlet 只會選取每個物件中的 ProcessName 屬性值。然後結果會經由管道輸出至 Get-Unique 以刪除重複項目。
AsString 參數指示 Get-Unique 將 ProcessName 值當做字串來處理。不使用這個參數,Get-Unique 就會將 ProcessName 值當做物件處理,然後只傳回一個物件執行個體,也就是清單中的第一個處理序名稱。