2012-08-07 2 views
0

매개 변수와 일치하지 않는 구성 파일의 텍스트 하나를 바꾸려고합니다. 나는 중요한 어구Powershell split에서 오류가 발생합니다.

$list = @((get-content client.cfg) | where { $_ -match "node_name(.*)" }) 
$s = $list.split() 

내가 구문 분석 구성을 차입하고 있습니다에 대한 파일에서 읽을 수 있지만 $ 목록이 무엇인지 클래스 모른다. split() 함수는 오류를 나타내지 만 $ s는 할당됩니다. 과제가 이상해. 정규식 두 결과를 제공해야하지만 $ s 배열을 너무 많은 필드가 있고 시스템 개체 오류가 발생합니다.

어떻게 $ 목록을 정규식과 일치하는 두 개의 간단한 텍스트 배열로 만들 수 있습니까?

+0

주 - 모든 파워 쉘 변수 및 .NET 유형을 기본 당신이 무엇인지 알아'$ myvar.GetType() FullName'를 호출 할 수있다 그래서.. 때로는 그것의 배열 그래서'$ myvar [0] .GetType(). FullName' 할 수 있습니다. 배열의 모든 객체가 같은 유형일 수는 없습니다. 'Get-Member'에게 객체를 보내면 도움이 될 것입니다. –

답변

1

방법을 사용할 수 있는지 확인하려면,과를 Get-Member cmdlet을 사용하여 작업중인 객체의 종류를 확인하기 :이 경우

$list | gm 

, 그것은 아마도 문자열입니다.

문자열에 대한 .split() 메서드에는 필자가 알고있는 한 어떤 종류의 인수가 필요합니다. MSDN에있는 문서를 참조하십시오 :

http://msdn.microsoft.com/en-us/library/system.string.split.aspx

+0

$ s = $ list -split '' 이것은 분할 함수가 작동하는 방식입니다. 그게 답입니다. – dcvii

+0

$ s = $ list.split ('')와 함께 작동하지 않습니까, 아니면 사용하지 않습니까? –

+0

작동했지만 경고를 던졌습니다. [System.Object []]에 메서드 이름이 포함되어 있지 않아 메서드 호출이 실패했습니다. ed 'split'. 라인에서 1 문자 : 17 + $ S = $ line.split <<<<() + CategoryInfo : InvalidOperation (분할 : 문자열)] RuntimeExce ption + FullyQualifiedErrorId : MethodNotFound – dcvii

관련 문제