如何在 PowerShell 中使用 Compare-Object?
PowerShell 中的 Compare-Object 命令用於比較兩個物件。物件可以是變數內容、兩個檔案、字串等。此 cmdlet 使用一些語法來顯示物件之間的差異,稱為側向指示符。
=> - Difference in destination object. <= - Difference in reference (source) object. == - When the source and destination objects are equal.
示例 1:比較兩個字串。
PS C:\> Compare-Object "World" "Alpha" InputObject SideIndicator ----------- ------------- Alpha => World <=
在上面的例子中,Alpha 字串顯示右側指示符,這意味著它與源物件不同,而 World 字串顯示左側指示符,這意味著它與目標字串不同。
示例 2:比較兩個相等的字串。
下面的示例不會顯示任何輸出,因為源和目標引用物件相同,但是當你使用 -IncludeEqual 引數時,它將顯示匹配物件的相等指示符 (==)。
PS C:\> Compare-Object "World" "woRld" PS C:\> Compare-Object "World" "woRld" -IncludeEqual InputObject SideIndicator ----------- ------------- World ==
請注意,Compare-Object 不區分大小寫。對於區分大小寫的比較,請使用 -CaseSensitive 引數。
PS C:\> Compare-Object "World" "woRld" -CaseSensitive InputObject SideIndicator ----------- ------------- woRld => World <=
示例 3:原始檔和目標檔案比較。
$sourcefiles = Get-ChildItem C:\Test1 -Recurse $destfiles = Get-ChildItem C:\Test2\ -Recurse Compare-Object $sourcefiles $destfiles -IncludeEqual
輸出
InputObject SideIndicator ----------- ------------- File1.txt == File3.txt => File2.txt <=
上面的示例顯示 file1.txt 同時存在於兩個位置,而 File3.txt 存在於目標位置,但不存在於源位置;File2.txt 存在於源位置,但不存在於目標位置。
如果我們使用 -ExcludeDifference 引數,除非新增 -IncludeEqual 引數,否則不會顯示輸出。
Compare-Object $sourcefiles $destfiles -ExcludeDifferent
以下命令將僅顯示匹配的檔案。
PS C:\> Compare-Object $sourcefiles $destfiles -IncludeEqual -ExcludeDifferent InputObject SideIndicator ----------- ------------- File1.txt ==
示例 4:使用屬性名稱進行比較。
要使用特定屬性名稱比較兩個物件,請使用 -Property 引數。在下面的示例中,我們將比較檔案的 LastWriteTime。
示例
$sfiles = Get-ChildItem C:\Test1\ -Recurse $dfiles = Get-ChildItem C:\Test2\ -Recurse Compare-Object $sfiles $dfiles -Property LastWriteTime -IncludeEqual
輸出
LastWriteTime SideIndicator ------------- ------------- 8/28/2020 7:27:11 AM == 8/28/2020 7:29:00 AM => 8/28/2020 7:49:37 AM <=
如果你需要輸出中任何特定屬性的名稱,請先新增該屬性,然後新增要比較的屬性名稱。例如,
示例
Compare-Object $sfiles $dfiles -Property Name, LastWriteTime -IncludeEqual
輸出
Name LastWriteTime SideIndicator ---- ------------- ------------- File1.txt 8/28/2020 7:27:11 AM == File3.txt 8/28/2020 7:29:00 AM => File2.txt 8/28/2020 7:49:37 AM <=
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP