我对对象的概念仍然很陌生,无法理解这一点:
PS C:\Windows\system32> $obj1 = New-Object psobject
$obj1 | Add-Member -NotePropertyName Whatever -NotePropertyValue "blah"
$obj2 = New-Object psobject
$obj2 | Add-Member -NotePropertyName Whatever -NotePropertyValue "blih blah"
$obj2 | %{$obj1 -match $_}
False
好的,看来我显然不能在 PSCustomObject System.Object 上使用 -match 运算符。因为两个对象中都存在字符串“blah”。
所以如果我尝试:
PS C:\Windows\system32> $arr1 = @("blah")
$arr2 = @("blih blah")
$arr1 | %{$arr2 -match $_}
blih blah
然后它起作用了!所以呢?我是否需要将任何 PSCustomObject System.Object 转换为 Object System.Array 才能使用“-match”等运算符?
当然,必须有一种直接从 PSCustomObject System.Object 直接执行此操作的快速且直接的方法,不是吗?
我要做的就是解析 2 PSCustomObject System.Object 并检查第一个的值是否以某种方式存在于第二个中(完全匹配、部分匹配等)
非常感谢!