PowerShell을 사용하여 중첩 된 개체 속성의 값을 설정하려고합니다. 그것이 작동하지 않는, 중첩 된 속성에 대한PowerShell에서 이름별로 중첩 된 개체 속성의 값 설정
$propertyName = "someProperty"
$obj.$propertyName = "someValue" # ← It works
: 첫 번째 레벨 속성의 값을 설정하려고 할 때, 조용하고 간단
$propertyName = "someProperty.someNestedProperty"
$obj.$propertyName = "someValue" # ← It doesn't work and raises an error.
어떻게 중첩 된 객체 속성의 값을 설정 PowerShell을 사용하여 속성 이름으로?
$Obj= ConvertFrom-Json '{ "A": "x", "B": {"C": "y"} }'
# Or simply create the object:
# $Obj= @{ A = "x"; B = @{C = "y"} }
$Key = "B.C"
$Value = "Some Value"
$Obj.$Key = $Value
명령을 실행하고 오류가 나타납니다 :
"The property 'B.C' cannot be found on this object. Verify that the property exists and can be set."
중첩 된 속성을 요구하고 있음을 알 수있는 방법이 없습니다. 나는 이것이 속임수 표적이라고 생각하는 것을 찾으려고 노력하고있다. 단일 문자열에서 중첩 된 속성을 지원하는 논리를 작성해야합니다. 이것은 효과가 있지만'$ json. $ propertyName. $ nestedPropertyName.'을 원한다면 하나의 유스 케이스 만 만족시키기 때문에 필요하지는 않습니다. 재귀 함수가 필요합니다 iirc – Matt
이것이 제가 생각한 것 같습니다. https://stackoverflow.com/questions/45174708/powershell-turn-period-delimited-string-into-object-properties/45175340#45175340 – Matt
@Matt 댓글 주셔서 감사합니다. 나는'$ json. $ propertyName. $ nestedPropertyName'을 알고있다. 하지만 속성 이름을 기반으로하지 않으며 런타임에 이름으로 속성을 해결해야한다는 요구 사항을 충족하지 못합니다. 연결된 게시물에 대해서도 * Get *을 찾고 * Set *을 찾고 있습니다. –