PowerShell의 확장 가능한 문자열에서 $($variableName)는 무엇을 의미합니까?
온라인에서 이것을 사용하는 예제 스크립트를 많이 보았습니다.가장 최근에 TFS 자동화에 대한 스크립트에서 이를 보았습니다.
[string] $fields = "Title=$($taskTitle);Description=$($taskTitle);Assigned To=$($assignee);"
$fields += "Area Path=$($areaPath);Iteration Path=$($iterationPath);Discipline=$($taskDisciplineArray[$i]);Priority=$($i+1);"
$fields += "Estimate=$($taskEstimateArray[$i]);Remaining Work=$($taskRemainingArray[$i]);Completed Work=$($tasktaskCompletedArray[$i])"
제가 봤을 때는$($taskTitle)
와 동등한 것으로 보입니다.$taskTitle
.내가 뭘 빼놓았나요?괄호와 여분의 달러 표시를 사용해야 하는 이유가 있습니까?
구문은 구문 내부의 식을 평가하는 데 도움이 됩니다.
$arr = @(1,2,3)
$msg1 = "$arr.length"
echo $msg1 # prints 1 2 3.length - .length was treated as part of the string
$msg2 = "$($arr.length)"
echo $msg2 # prints 3
자세한 내용은 http://ss64.com/ps/syntax-operators.html 에서 확인하실 수 있습니다.
Amith George의 유용한 답변을 배경 정보로 보완하기 위해:
제가 봤을 때는
$($taskTitle)
와 동등한 것으로 보입니다.$taskTitle
.
의 맥락에서 확장 가능한 문자열(삽입 문자열)은 다음과 같습니다.
또는 다음과 같은 단순 변수 참조는 필요하지 않습니다.
- 때로는 양식을 사용해야 합니다(또는 선택할 수도 있습니다).
${taskTitle}
또는${env:HOME}
즉,{...}
식별자 주위 - 문자열의 후속 문자로부터 변수 이름을 명확하게 구분합니다.
- 때로는 양식을 사용해야 합니다(또는 선택할 수도 있습니다).
그 밖에 필요한 것은 무엇이든 있습니다.
- 속성 액세스. 예:
"count is: $($var.Count)"
- 식 포함; 예:
"path prefix: $($var + '/')"
- 전체 명령 포함(여러 명령 포함), 예:
"file names: $(Get-ChildItem *.txt | Select-Object -ExpandProperty Name)"
- 속성 액세스. 예:
간단히 말해서:
$(...)
내부"...
단순 변수 참조 이외의 모든 항목에 필요하며 전체 문을 내부에 포함할 수 있습니다."..."
평소처럼, 문자열이 평가될 때,$(...)
부품이 포함된 문의 (문자열화된) 출력으로 대체되었습니다.만약 당신이 언제를 생각하고 싶지 않다면.
$(...)
필요한 경우와 필요하지 않은 경우 항상 사용하도록 할 수 있습니다(예:$($taskTitle)
), 그러나 입력 및 시각적 "인식"은 번거롭다는 점에 유의하십시오.- 주의: 의 동작이 /의 동작과 동일하지 않은 에지 사례가 있습니다. 즉, if
$var
는 컬렉션입니다(다운로드).[System.Collections.IEnumerable]
) 항목이 하나만 포함되어 있습니다. 아래 PetSerAl의 설명을 참조하십시오.
- 주의: 의 동작이 /의 동작과 동일하지 않은 에지 사례가 있습니다. 즉, if
참조된 변수의 /medbedded 문 값이 이미 문자열이 아닌 경우 를 사용하여 문자열화됩니다.문화에 민감한 문자열화를 지원하는 유형이 불변 문화로 문자열화되는 주목할 만한 반전과 함께 NET 방법은 느슨하게 말하면 미국-영어 형식과 같습니다. 예를 들어,
"$(1.2)"
항상 수확량1.2
▁where도서 에서도.,
는 소수점 표시입니다. 자세한 내용은 이 답변을 참조하십시오.
설명서:
의 공식 이름은 에서 (간단히) 문서화된 대로 하위 표현 연산자이지만, 확장 가능한 문자열의 맥락에서 연산자의 특정 사용에 대한 설명은 없습니다.
반대로, 확장 가능한 문자열을 포함한 문자열 리터럴에 대해 논의하는 는 다음의 예를 보여줍니다.$(...)
확장 가능한 문자열의 컨텍스트에서만 사용합니다.
언급URL : https://stackoverflow.com/questions/13615676/what-does-variablename-mean-in-expandable-strings-in-powershell
'programing' 카테고리의 다른 글
jQuery UI 아코디언은 여러 섹션을 열어두나요? (0) | 2023.08.24 |
---|---|
최고의 AJAX 트리 보기 (0) | 2023.08.24 |
JPA - EclipseLink - 기본 스키마를 변경하는 방법 (0) | 2023.08.19 |
Xampp가 예기치 않게 종료하기 전에 SQL을 시작합니다.효과적인 해결책이 없는 것 같습니다. (0) | 2023.08.19 |
python 사용자 정의 클래스 정렬 가능, 해시 가능하게 만들기 (0) | 2023.08.19 |