PowerShell - 如何判断两个对象是否相同

Kol*_*yon 1 powershell conditional if-statement equality object

假设您有两个相同的对象(意味着它们分别具有相同的属性和相同的值)。

你如何测试平等?

例子

$obj1&$obj2是相同的

在此处输入图片说明

这是我尝试过的:

if($obj1 -eq $obj2)
{
    echo 'true'
} else {
    echo 'false'
}
# RETURNS "false"

if(Compare-Object -ReferenceObject $obj1 -DifferenceObject $obj2)
{
    echo 'true'
} else {
    echo 'false'
}
# RETURNS "false"
Run Code Online (Sandbox Code Playgroud)

编辑

并不相同

在此处输入图片说明

Bil*_*art 5

你可以比较两个PSObject通过使用属性和值相等的对象Compare-Object来比较Properties两者的特性PSObject对象。例子:

if ( -not (Compare-Object $obj1.PSObject.Properties $obj2.PSObject.Properties) ) {
  "object properties and values match"
}
else {
  "object properties and values do not match"
}
Run Code Online (Sandbox Code Playgroud)

如果你想在一个函数中使用它:

function Test-PSCustomObjectEquality {
  param(
    [Parameter(Mandatory = $true)]
    [PSCustomObject] $firstObject,

    [Parameter(Mandatory = $true)]
    [PSCustomObject] $secondObject
  )
  -not (Compare-Object $firstObject.PSObject.Properties $secondObject.PSObject.Properties)
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

9344 次

最近记录:

6 年,3 月 前