如何在 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