共用方式為


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 值當做物件處理,然後只傳回一個物件執行個體,也就是清單中的第一個處理序名稱。





請參閱

概念

Select-Object
Sort-Object