NextHop 博客为这个问题提供了一个很好的解决方案。它不会给你一个错误,而是一个布尔值。您可以使用Get-Member
来获取对象类型的所有真实属性的集合,然后匹配您想要的属性。
这是字符串的示例:
PS C:\> $test = "I'm a string."
PS C:\> ($test | Get-Member | Select-Object -ExpandProperty Name) -contains "Trim"
True
PS C:\> ($test | Get-Member | Select-Object -ExpandProperty Name) -contains "Pigs"
False
如果您明确想要一个错误,您可能需要查看Set-Strictmode以Set-StrictMode -version 2
捕获不存在的属性。完成后,您也可以轻松将其关闭:
PS C:\> Set-StrictMode -version 2
PS C:\> "test".Pigs
Property 'Pigs' cannot be found on this object. Make sure that it exists.
At line:1 char:8
+ "test". <<<< Pigs
+ CategoryInfo : InvalidOperation: (.:OperatorToken) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFoundStrict
PS C:\> Set-StrictMode -off