【问题标题】:How can you evaluate a string on PSObjects?如何评估 PSObjects 上的字符串?
【发布时间】:2013-09-20 10:50:01
【问题描述】:

我对对象的概念还是很陌生,无法理解这一点:

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 并检查第一个的值是否以某种方式存在于第二个中(完全匹配、部分匹配等)。

非常感谢!

【问题讨论】:

  • mmm... 我刚刚找到了解决方案.. PS C:\Windows\system32> $obj1 = New-Object psobject $obj1 |添加成员 -NotePropertyName 随便 -NotePropertyValue "blah" $obj2 = New-Object psobject $obj2 |添加成员 -NotePropertyName 随便 -NotePropertyValue "blih blah" $obj1 | %{$obj2.Whatever -match $_.Whatever} True 好的,我必须指定要比较的属性..有意义。如果有人有技巧/建议或袖手旁观的东西可以方便将来参考,我会留下这个问题:)

标签: string parsing search powershell-3.0 psobject


【解决方案1】:
$obj1 = New-Object psobject
$obj1 | Add-Member -NotePropertyName Whatever -NotePropertyValue "blah"

$obj2 = New-Object psobject
$obj2 | Add-Member -NotePropertyName Whatever -NotePropertyValue "blih blah"

$obj1 | %{$obj2.Whatever -match $_.Whatever}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多