共用方式為


Get-Unique

從排序的清單中傳回唯一項目。

Syntax

Get-Unique
   [-InputObject <PSObject>]
   [-AsString]
   [<CommonParameters>]
Get-Unique
   [-InputObject <PSObject>]
   [-OnType]
   [<CommonParameters>]

Description

Get-Unique Cmdlet 會將排序列表中的每個專案與下一個項目進行比較、排除重複專案,並只傳回每個專案的一個實例。 清單必須排序,此 Cmdlet 才能正常運作。

Get-Unique 會區分大小寫。 因此,只有字元大小寫不同的字串會被視為唯一的字串。

範例

範例 1︰取得文字檔中的唯一文字

這些命令會尋找文字檔案中的唯一文字數目。

$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
    $line.tolower().split(" ")
  }) | Sort-Object | Get-Unique
$A.count

第一個命令會取得檔案的內容 File.txt 。 它會將每一行文字轉換成小寫字母,然後將每個字分割成空格 (" ") 的個別行。 然後,它會依字母順序排序產生的清單, (預設) ,並使用 Get-Unique Cmdlet 來排除任何重複的單字。 結果會儲存在變數中 $A

第二個命令會使用 中$A字串集合的 Count 屬性來判斷 中的$A項目數。

範例 2︰取得陣列中的唯一整數

此命令會尋找整數的集合的唯一成員。

1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | Sort-Object | Get-Unique

1
3
4
5
12
23
4643

第一個命令會採用在命令行輸入的整數陣列、使用管線將它們傳送至要排序的 Sort-Object Cmdlet,然後將它們管線傳送至 Get-Unique,以排除重複的專案。

範例 3︰取得目錄中唯一的物件類型

此命令會 Get-ChildItem 使用 Cmdlet 來擷取本機目錄的內容,其中包含檔案和目錄。

Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType

管線運算子 (|) 將結果傳送至 Sort-Object Cmdlet。 語句 $_.GetType() 會將 GetType 方法套用至每個檔案或目錄。 然後, Sort-Object 依類型排序專案。 另一個管線運算子會將結果傳送至 Get-UniqueOnType 參數會指示Get-Unique只傳回每個類型的一個物件。

範例 4︰取得唯一的處理程序

此命令會取得電腦上執行之處理程序的名稱,並排除重複項目。

Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString

命令 Get-Process 會取得計算機上的所有進程。 管線運算子 () | 將結果傳遞至 Sort-Object,預設會依 ProcessName 依字母順序排序進程。 結果會以管線傳送至 Select-Object Cmdlet,只選取每個物件的 ProcessName 屬性值。 然後,結果會以管線傳送至 Get-Unique 以消除重複專案。

AsString 參數會Get-Unique指示將 ProcessName 值視為字串。 如果沒有此參數, Get-Unique會將 ProcessName 值視為物件,而且只會傳回物件的一個實例,也就是清單中的第一個進程名稱。

參數

-AsString

指出此 Cmdlet 會使用資料做為字串。 如果沒有此參數,數據會被視為物件,因此當您將相同類型的物件集合提交至 Get-Unique時,例如檔案集合,它只會傳回一個 (第一個) 。 您可以使用此參數來尋找物件屬性的唯一值,例如檔案名稱。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定的 Get-Unique輸入。 輸入包含物件的變數,或輸入可取得物件的命令或運算式。

此 Cmdlet 會將使用 InputObject 提交的輸入視為集合。 它不會列舉集合中的個別專案。 由於集合為單一項目,因此使用 InputObject 提交的輸入一律會依原樣傳回。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OnType

指出此 Cmdlet 只會針對每個類型傳回一個物件。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

PSObject

您可以使用管線將任何類型的物件傳送至此 Cmdlet。

輸出

PSObject

此 Cmdlet 會傳回其輸入物件,而不會重複。

備註

PowerShell 包含的下列別名 Get-Unique

  • 所有平台:
    • gu

如需詳細資訊,請參閱 about_Aliases

若要排序列表,請使用 Sort-Object。 您也可以使用 Sort-Object Unique 參數來尋找清單中的唯一專案。