共用方式為


Get-Unique

從已排序的清單傳回唯一專案。

語法

AsString (預設值)

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

UniqueByType

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 屬性來判斷 $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,該 cmdlet 僅選擇每個物件的 ProcessName 屬性的值。 然後,結果會透過管道傳送至 Get-Unique,以消除重複專案。

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

參數

-AsString

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

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

AsString
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-InputObject

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

此 Cmdlet 會將使用 InputObj ect 所提交的輸入視為集合。 它不會列舉集合中的個別專案。 因為集合是單一專案,因此使用 InputObject 提交 的輸入一律會傳回不變。

參數屬性

類型:PSObject
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-OnType

表示此 Cmdlet 只會傳回每個類型的一個物件。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

UniqueByType
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

PSObject

您可以透過管道將任何類型的物件傳遞給 Get-Unique

輸出

PSObject

返回的物件 Get-Unique 類型由輸入確定。

備註

您也可以透過內建別名 Get-Unique來參考 gu。 如需詳細資訊,請參閱 about_Aliases

要對清單進行排序,請使用 Sort-Object。 您也可以使用 Sort-Object 參數,在清單中尋找唯一的專案。