powershell: 判断PSObject中是否有指定property的靠谱方法

如何判断一个PSObject中是否定义指定名称的属性,下面的代码中举出了三个方法

$test=New-Object PSObject -Property @{
    compiler=$null
    }
#方法一(不完全靠谱)    
$test.compiler -ne $null
#方法二
(Get-Member -inputobject $test -name "compiler" ) -ne $null
#方法三
($test.PSobject.Properties.name -match "compiler")

上面三个方法, 方法一虽然最简单却不完全靠谱,因为如果compiler是$null时,返回结果是错的。 靠谱的办法是二和三, 而方法三要求powerShell 3.0以上的版本才有效

参考:

https://stackoverflow.com/questions/26997511/how-can-you-test-if-an-object-has-a-specific-property

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ml

错误笔记-----今天在敲代码的时候,出现了一个问题!

 if(x!=Father(x))         //这条代码-----其实我定义的是个数组,然而我却用错了括号【】我用了(), //D:\Microsoft...

35413
来自专栏Golang语言社区

Go Channel 应用模式(二)

eapache/channels提供了一些channel应用模式的方法,比如上面的扇入扇出模式等。

1153
来自专栏Petrichor的专栏

python: *args & **kwargs

Python是支持 可变参数 的,实现手段之一就是使用 *args 和 **kwargs 语法。

3046
来自专栏程序员互动联盟

【C语言基础】结构体赋值

结构体在 C 程序中使用的较为频繁,能对数据有一定的封装的作用。对一个结构体赋值时,经常采用的方式是,分别对其成员变量赋值。那么能否将一个结构体用赋值号(“=”...

4487
来自专栏前端真相

js基础(5)

20011
来自专栏漫漫前端路

巧用 TypeScript (一)

TypeScript 提供函数重载的功能,用来处理因函数参数不同而返回类型不同的使用场景,使用时,只需为同一个函数定义多个类型即可,简单使用如下所示:

2942
来自专栏Golang语言社区

Go Channel 应用模式(二)

eapache/channels提供了一些channel应用模式的方法,比如上面的扇入扇出模式等。

1593
来自专栏技术博文

ls按时间排序输出文件列表

ls按时间排序输出文件列表 首先,ls --help查看ls相关的与时间排序相关的参数: > ls --help|grep -E "time|sort" 如果不...

3816
来自专栏大内老A

比较一下以“反射”和“表达式”执行方法的性能差异

由于频繁地使用反射会影响性能,所以ASP.NET MVC采用了表达式树的方式来执行目标Action方法。具体来说,ASP.NET MVC会构建一个表达式来体现针...

1907
来自专栏流柯技术学院

Jmeter函数组件开发

在eclipse新建项目,导入jmeter目录下\lib\ext目录中的的ApacheJMeter_core.jar,继承AbstractFunction类。

1081

扫码关注云+社区

领取腾讯云代金券