2017-12-11 12 views
2

편집 : 운용자

의 기능에 내 추가 생각은 env:, function:drive: PSDrives에 적용되는 IContentCmdletProvider 인터페이스를 구현 나타납니다. (암시적인 variable: psdrive와 상호 작용하는 방식 일 수도 있습니다). 이 인터페이스는 Get-ContentSet-Content cmdlet을 사용합니다.


Microsoft에서이 기능에 대한 설명서를 찾을 수 없습니다. 검색 엔진에서 기호를 검색하기가 정말 어렵습니다. ${}으로 수행 할 수있는 아주 이상한 행동을 보았습니다. 예를 들어 : 일부 자동 모듈에서

${C:\Temp\Filename.txt} = 'This writes to the file!' 

$ExampleString = ${C:\Temp\Filename.txt} #this gets file content!? 

, 나는 또한이 구문 ${Message} 선언 함수 매개 변수 변수를보고 난 코딩 표준 또는 구문이 실제로 무언가를하는 경우 준수로 변경하는 경우는 확실하지 않다 중요합니다 (이 예에서는 Jeffrey Snover의 MetaProgramming 모듈). 나는 문자열 확장에서 변수를 호출하는 구문을 사용했지만, 이것이 내가 알고있는 유일한 유스 케이스이다.

그래서 ${}은 무엇입니까?

+0

'도움말 about_Variables'과 동일 - 섹션 "특수 문자가 포함 된 변수 이름" –

+0

@Bill_Stewart 그 문서는':'을 사용하여 이상한 동작을 설명하지 못합니다. – TheIncorrigible1

+0

예, 파일 경로에 대한 참조입니다. 나는 그것이 내가 기록한 곳을 기억하려고 노력하고있다. –

답변

1

그래서 ${}에는 두 가지 용도가 있습니다. 그 중 하나는 당신이 당신의 변수 이름에 특수 문자를 동봉 할 수 있습니다로, 변수 선언입니다 :

${special var with spaces} 

을하지만, 또한 당신이 같은 큰 문자열을 사용할 수 있습니다 :

$Var="middle" 
Write-Host "Before${Var}After" 

또 다른 용도 당신이 제안하고있는 것처럼, 그것은 경로를 읽을 수 있다는 것입니다.

$Var = ${C:\Temp\Filename.txt} 

$Var = Get-Content -Path 'C:\Temp\Filename.txt' 

과 동일하지만, 또한 경로에 쓸 수있다 :

${C:\Temp\Filename.txt} = 'This writes to the file!' 

'This writes to the file!' | Set-Content -Path 'C:\Temp\Filename.txt'