Powershell $obj.psObject.properties[$key].value是否可以缩写

Powershell $obj.psObject.properties[$key].value是否可以缩写,powershell,syntactic-sugar,Powershell,Syntactic Sugar,为了获取名称存储在变量中的对象属性的值,我使用以下构造: # Create object $obj = new-object psObject -property @{ num = 42; txt = 'Hello world' } # Name of property whose value I want: $key = 'txt' # Get value $val = $obj.psObject.properties[$key].value $val 我想知道$obj.psObject

为了获取名称存储在变量中的对象属性的值,我使用以下构造:

# Create object
$obj = new-object psObject -property @{ num = 42; txt = 'Hello world' }

# Name of property whose value I want:
$key = 'txt'

# Get value
$val = $obj.psObject.properties[$key].value
$val

我想知道$obj.psObject.properties[$key].value是否可以缩写。

直接从存储在变量$key中的属性名txt获取值可以这样做

$obj.$key

直接从属性(属性名txt存储在变量$key中)获取值可以这样做

$obj.$key

例如$obj.txt或$obj.$key?$obj.$key确实返回值。不过,这个构造的语法看起来有点奇怪,至少对我来说是这样,所以我忽略了这一点。当然,我没意见。我真的同意你的意见,但如果行得通,那就行了另外,您还可以缩短对象创建语法:$obj=[pscustomobject]@{num=42;txt='Hello World'},例如$obj.txt或$obj.$key?$obj.$key确实返回值。不过,这个构造的语法看起来有点奇怪,至少对我来说是这样,所以我忽略了这一点。当然,我没意见。我真的同意你的意见,但如果行得通,那就行了另外,您还可以缩短对象创建语法:$obj=[pscustomobject]@{num=42;txt='Hello World'}