반응형
PowerShell의 해시 테이블 값 문자열 보간
해시 테이블이 있습니다.
$hash = @{ First = 'Al'; Last = 'Bundy' }
저는 제가 할 수 있다는 것을 압니다.
Write-Host "Computer name is ${env:COMPUTERNAME}"
그래서 저는 이것을 하기를 희망했습니다.
Write-Host "Hello, ${hash.First} ${hash.Last}."
...하지만 이해합니다
Hello, .
문자열 보간에서 해시 테이블 멤버를 참조하려면 어떻게 해야 합니까?
Write-Host "Hello, $($hash.First) $($hash.Last)."
"Hello, {0} {1}." -f $hash["First"] , $hash["Last"]
원하는 경우 작은 기능을 추가하여 좀 더 일반적으로 만들 수 있습니다.하지만 주의하십시오. 당신은 잠재적으로 신뢰할 수 없는 코드를 실행하고 있습니다.$template
현을 매다
Function Format-String ($template)
{
# Set all unbound variables (@args) in the local context
while (($key, $val, $args) = $args) { Set-Variable $key $val }
$ExecutionContext.InvokeCommand.ExpandString($template)
}
# Make sure to use single-quotes to avoid expansion before the call.
Write-Host (Format-String 'Hello, $First $Last' @hash)
# You have to escape embedded quotes, too, at least in PoSh v2
Write-Host (Format-String 'Hello, `"$First`" $Last' @hash)
Powershell 4.0에서 작업하기 위한 Lemur의 답변을 얻을 수 없어서 다음과 같이 조정되었습니다.
Function Format-String ($template)
{
# Set all unbound variables (@args) in the local context
while ($args)
{
($key, $val, $args) = $args
Set-Variable -Name $key.SubString(1,$key.Length-2) -Value $val
}
$ExecutionContext.InvokeCommand.ExpandString($template)
}
언급URL : https://stackoverflow.com/questions/10754582/string-interpolation-of-hashtable-values-in-powershell
반응형
'programing' 카테고리의 다른 글
Java/JPA 프로그래머의 빈 문자열을 NULL 문제로 처리하는 Oracle (0) | 2023.08.29 |
---|---|
"치명적 오류: Objective-C에서 어레이를 브리지할 수 없습니다."-왜 노력하는 거야, 스위프트? (0) | 2023.08.29 |
파워셸 함정 (0) | 2023.08.29 |
BeginProcessRequest()에서는 어떻게 됩니까? (0) | 2023.08.29 |
손상된 Git 저장소를 어떻게 고칠 수 있습니까? (0) | 2023.08.29 |