: 나는 제안이 제출
업데이트
function Demo {
[CmdletBinding()]
Param (
[Parameter()]
[string]$One
,
[Parameter()]
[string]$Two
)
"1 = $One"
"2 = $Two"
}
$test = @{
testInt = @{
One = '1'
Two = '2'
}
testString = @{
One = 'One'
Two = 'Two'
}
}
$t = $test.testInt
Demo @t
$t = $test.testString
Demo @t
Demo @test.testInt #this doesn't work/I've also tried similar options with various castings and braces though to no avail.
...이 추가 단계를 방지 할 수있는 방법을 싶습니다하지만 깔끔한 해결책을 찾을 수 없어
AFAIK 개체 속성이나 배열 또는 해시 테이블의 요소를 표시하는 유일한 방법은 변수에 할당 한 다음 해당 변수를 표시하는 것입니다.
$p = $variable.property
demo @p
표기법 @variable.property
은 유효하지 않으며 다른 의미 (배열 구성 및 해시 테이블 구성)가 이미 있으므로 이러한 구문을 허용하기 위해 @()
및 @{}
을 사용할 수 없습니다.
'@ ($ test.testInt)'를 사용해 보셨습니까? – Clijsters
@ Clijsters : 예; 하지만 슬프게도 기쁨은 없습니다. – JohnLBevan
@Clijsters'@()'는 배열 생성 연산자입니다. 매개 변수를 감싸더라도 스플래팅 기능을 사용할 수 없습니다. –