Powershell 구문 분석 개체/문자열

Powershell 구문 분석 개체/문자열

Powershell을 학습하고 이 결과 집합의 첫 번째 값을 구문 분석하는 방법을 찾으려고 합니다.

IPAddresses
-----------
{10.60.50.40, fe80::5ddf:a8f4:e29c:b66}

일반적으로 나는 그것을 찾아보지만 {x, x}가 실제 표준 데이터 유형인지는 알 수 없습니다 Powershell.

대략적인 문자열 구문 분석을 수행해야 합니까, 아니면 첫 번째 문자열을 추출하는 다음과 같은 표준 명령이 있습니까?

... | Select-Object IPAddresses | Select-String [0]

(선택 문자열 부분을 방금 만들어 놓았습니다. 분실되었습니다.)

답변1

이것이 내가 지금까지 가지고 있는 것입니다:

... Select-Object IPAddresses | ForEach {$_.IPAddresses}[0]

첫 번째 것을 반환합니다.

답변2

다음과 같이 시도해 보세요.

$myResultSet | foreach { $_.IPAddresses[0] }

답변3

노력하다

$myResultSet | Select-Object -First 1 IPAddress

결과 세트는 일부 유형의 모음입니다. cmdlet Select-Object은 해당 컬렉션의 첫 번째 항목을 가져온 다음 IPAddress표시되는 속성으로만 필터링합니다.

내 컴퓨터에서 위 명령의 출력은 다음과 같습니다. 반환된 주소가 다르다는 점에서 귀하의 주소가 다를 수 있습니다.

IPAddress                                                                                                              
---------                                                                                                              
fe80::5581:4fbc:fc22:ec79%13                                                                                           

기본적으로 PowerShell은 출력을 통해 Format-Table멋진 디스플레이를 만들기 때문에 테이블을 얻습니다.

IP 주소 자체에만 액세스하려면 표현식을 약간 수정하면 됩니다.

$myResultSet.IPAddress|Select-Object -First 1

또는 점 표기법과 컬렉션에 대한 인덱스를 사용하면 Select-Object다음과 같이 완전히 사용하지 않아도 됩니다.

$myResultSet[0].IPAddress

위의 내용은 컬렉션 IPAddress의 첫 번째 항목 속성을 직접 참조하므로 $myResultSet인덱스가 0입니다.$myResultSet[0]

둘 중 하나는 다음과 같이 IP 주소 자체만 반환합니다.

fe80::5581:4fbc:fc22:ec79%13

답변4

첫째, 유형이 무엇인지 추측할 필요가 없으며 IPAddresses다음과 같이 쉽게 얻을 수 있습니다.

$myResultSet[0].IPAddresses.GetType()

아마 일종의 일이겠지컬렉션(배열)Select-Object이므로 다음 매개변수 와 함께 사용할 수 있습니다 ExpandProperty.

$myResultSet | Select-Object -ExpandProperty 'IPAddresses' | Select-Object -First 1

아니면 당신은 사용할 수 있습니다속성 역참조 연산자및\또는 다음과 같이 색인을 생성합니다.불구자 머프제안됨

관련 정보