PowerShell 문자열 형식 지정:콜론 문자로 인해 변수 값이 비어 있는 이유는 무엇입니까?
차세대 WinRM 및 PowerShell 3에 어떤 변화가 있을 것인지 살펴보던 중 변경 사항 목록을 살펴보던 중 이전에 본 적이 없는 것을 보게 되었습니다.
그 예는 다음과 같습니다.
$server = "msp42"
$status = "online"
"$server: $status"
결과 출력은 다음과 같습니다.
온라인.
네, 저는 그런 일은 처음이고 대장이 왜 문제를 일으켰는지 전혀 모르겠어요.이 문서에서 제안된 해결책은 공백을 두는 것이었습니다(이는 출력을 변경하기 때문에 어리석은 일입니다).
"$server : $status"
또 다른 제안은 다음과 같은 형식을 사용하는 것이었습니다(새로운 형식!).
"${server}: $status"
마지막 제안은 제가 항상 익숙하고 사용하는 표현을 만드는 것이었습니다.
"$($server): $status"
PowerShell 전문가들에게 다음과 같은 질문을 드립니다.
저 대장은 대체 뭐하는 거지?효과가 있나요?
도대체 뭐가.
${variable}
구문?대장을 다루는 것이 엄격한가요, 아니면 깔끔한 특징을 가지고 있나요?
콜론은 변수 이름에 유효한 문자입니다(예:$Env:PATH
,기타.
다음 옵션도 사용할 수 있습니다.
$server`: $status
또는 경우에 따라 형식 문자열이 더 읽기 쉽습니다.
'{0}: {1}' -f $server, $status
다시 대장으로.PSDrive의 항목에 해당하는 변수 이름에는 특별한 경우가 있습니다.
$Env:Foo # equivalent to the contents of Env:\Foo
$Function:C: # equivalent to the contents of Function:\C:
${C:\autoexec.bat} # ... you get the picture
구문${}
구문의 다른 부분에 예약된 문자를 사용하는 변수 이름을 지정할 수 있습니다.C#과 비슷하지만 더 강력하다고 볼 수 있습니다.@
식별기 앞에서.위의 a 위치 참조\
변수 이름에 사용됩니다.$Drive:Item
드라이브의 현재 컨테이너(또는 비전자식 컨테이너의 루트)에만 작동합니다.Env
,Alias
또는Function
).
변수 이름이 일반적으로 잘못된 구문인 다른 예:
PS> $+
The term '$+' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ $+
+ ~~
+ CategoryInfo : ObjectNotFound: ($+:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS> ${+} = 5
PS> ${+}
5
PS> Get-Variable +
Name Value
---- -----
+ 5
언급URL : https://stackoverflow.com/questions/8386219/powershell-string-formatting-why-is-the-colon-character-causing-my-variables-v
'programing' 카테고리의 다른 글
수식과 필터링을 사용한 Excel 데이터 유효성 검사 목록 (0) | 2023.08.10 |
---|---|
UILabel 글꼴 크기 변경 애니메이션화 (0) | 2023.08.10 |
테이블의 열을 하나만 업데이트하도록 CSV 가져오기 (0) | 2023.08.10 |
열이 구분된 테이블을 사용하여 조회 (0) | 2023.08.10 |
Android를 사용하여 HTTP 요청 만들기 (0) | 2023.08.10 |