cmdlet을 사용하여 원하는 속성 이름을 지정 하여 속성 을 이름으로 가져올 수 있습니다.이 속성 은 Select-Object단순히 해당 속성의 원시 값을 반환하지는 않습니다. 대신 여전히 객체처럼 동작하는 것을 얻습니다.
[PS]> $property = (Get-Process)[0] | Select-Object -Property Name
[PS]> $property
Name
----
armsvc
[PS]> $property.GetType().FullName
System.Management.Automation.PSCustomObject
해당 속성 의 값 을 사용하려면 속성이 하나 뿐인 경우에도 다음 속성을 식별해야합니다.
[PS]> $property.Name
armsvc
[PS]> $property -eq "armsvc"
False
[PS]> $property.Name -eq "armsvc"
True
[PS]> $property.Name.GetType().FullName
System.String
다른 답변에 따르면 문자열 내에서 단일 속성을 사용하려면 식을 괄호로 묶고 표현식을 삽입 할 변수로 동적으로 선언하기 위해 달러 기호 ($)를 접두사로 사용해야합니다 문자열로 :
[PS]> "The first process in the list is: $($property.Name)"
The first process in the list is: armsvc
정확하게 다른 사람들은 cmdlet 의 -ExpandProperty매개 변수를 권장하여이 질문에 대답했습니다 Select-Object. 지정된 속성 값을 반환하여 두통을 피할 수 있지만 시나리오마다 다른 접근 방식을 사용하려고합니다.
-ExpandProperty <String>
선택할 속성을 지정하고 해당 속성을 확장하려고 시도해야 함을 나타냅니다.
https://technet.microsoft.com/en-us/library/hh849895.aspx
[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc
파워 쉘 변수
select -expand "SomeProp"값을 원한다면 expand :를 기억하십시오 .select "SomeProp"속성이 "SomeProp"인 사용자 정의 개체를 반환 한 다음 1 단계에서 거의 다시 돌아 왔습니다.