2017-01-19 3 views
0

Microsoft Remote Desktop 저장된 세션은 텍스트 편집기를 사용하여 열 때 값을 갖습니다. 자신을 테스트하고 원격 데스크톱 연결을 열고 옵션을 클릭 한 다음 저장을 클릭합니다. 텍스트 편집기에서 결과 .rdp 파일 열기).PowerShell 및 Select-String을 사용하여 텍스트 용 비표준 파일 구문 분석

Cannot index a null array

이 있습니까 :

$MyOObject."Prompt" = (Select-String -Path $Path -Pattern "promptcredentialonce: (.*)").Matches.Groups[1].Value 

... 다음과 같은 오류가 발생합니다 : (다른 파일 형식에 정확히 동일한 구문 때 작동하는) 여기에 표준 Select-String 명령을 사용하지만

, PowerShell 2.0에서 이러한 종류의 파일 또는 비표준 텍스트 파일을 구문 분석하는 데 사용할 다른 명령은 무엇입니까?

+0

@wOxxOm – AlwaysQuestioning

+0

'Matches'는 배열이므로 PS2에서는'Matches [0]'또는 foreach/where/select-object가 필요합니다. – wOxxOm

답변

1

패턴이 잘못되었습니다. 의 .rdp 파일의 옵션의 구문은 경우

name:type:value 

이다 : 그러나

promptcredentialonce:i:0 

, 존재하지 않는 옵션 이름 뒤에 공백 뭔가를 (일치하려는) 다음 .Matches 속성이 비어 있고 .Group[1] null 값에 대한 인덱스 인 접근을 시도 일치하지 않고

promptcredentialonce: (.*) 

.

당신이 유형을 포함하여 값을하려면 공간 제거 : 당신은 그냥 값을 원하는 경우,

promptcredentialonce:(.*) 

을 이런 식으로 뭔가에 패턴을 변경 : 내가 업데이트 한

promptcredentialonce:\w+:(.*)