어떻게 문자열 변수를 강제로 확장 할 수 있습니까?Powershell : 강제 변수 확장
하나 이상의 변수 이름이있는 문자열 (템플릿)을 읽은 다음 파일을 읽은 다음 확장해야합니다. 핵심은 확장에 사용될 변수를 선언하기 전에 파일의 내용을 읽어야한다는 것입니다. 여러 가지 방법을 시도했지만 제대로 작동하지 않습니다.
$ 환경이 정의 된 후 파일을 읽는 옵션이 아닙니다. name.txt의
내용 : $ 환경 RPT-INT
#example 1
$name = gc "c:\temp\name.txt"
$environment = "9065DEV"
$expanded = $ExecutionContext.InvokeCommand.ExpandString($name)
$expanded
#example 2
$name = gc "c:\temp\name.txt"
$environment = "9065DEV"
$expanded = $expanded = Invoke-Expression "`"$template`""
$expanded
#example 3
$name = gc "c:\temp\name.txt"
$environment = "9065DEV"
$name = $name.Clone()
$expanded = $ExecutionContext.InvokeCommand.ExpandString($name)
$expanded
는 어떤 도움에 감사드립니다.
업데이트 : 예 1이 현재 나를 위해 일하고 있습니다.
안녕하세요! $ name에 얻고 자하는 변수의 이름이 들어 있다고 하시겠습니까? 그렇다면'Get-Variable -Name $ Name -ValueOnly'를 사용할 수 있습니다. 그렇지 않다면, 약간의 의사 코드로 원하는 목표를 명확히하는 것이 마음에 드십니까? –
Powershell v2를 사용하고 있는데 첫 번째 예제가 저에게 효과적입니다. 어떤 버전을 사용하고 있으며 출력은 무엇입니까? – SpellingD
$ name은 c : \ temp \ name.txt 파일의 내용을 포함합니다.이 문자열은 다음과 같습니다. $ environment-RPT-INT –