2016-10-05 3 views
1

변수 ([xml]$modificationData = Get-Content $modificationXmlFileName)을 채우는 XML 파일을 사용 했었지만 이제는 파일을 저장할 수 없으며이 데이터를 다른 데이터 파일 형식으로 저장해야합니다. 입니다 :이 새로운 변수에 패주 경우 Get-Content cmdlet을 지금 일하는 것이 나는 내가 사용할 수있는 다른 어떤 완전히 확실하지 않다 경우변수의 XML 내용 검색

xmldata = @' 
    <bigSection> 
    <smallSection> 
     <changes> 
     </changes> 
    </smallSection> 
    </bigSection> 
'@ 

잘 모르겠어요.

또한 코드 주위에 무엇을 @''@이 감싸는 지 모르겠다. 나는 @ 기호가 배열에 사용되었다고 생각했지만 나는이 경우에는 그렇게하지 않는다고 생각합니다.

설명이 도움이 될 것입니다.

답변

2

@'...'@ 구문은 여기에 문자열 또는 여기에 문서라고합니다. 문자를 이스케이프하지 않고 문자열을 지정하는 방법입니다.

Get-Content은 파일을 읽는 데 사용됩니다. 기본적으로이 메서드를 호출하면 -Raw 매개 변수를 사용하여 호출하지 않는 한 줄 배열을 반환합니다. 그런 다음 파일의 모든 내용이 포함 된 큰 문자열 하나를 반환합니다.

예에서 $xmldataGet-Content $modificationXmlFileName -Raw을 호출 한 것과 같습니다.

$xmldata = [xml]@' 
... 
'@ 
1

'@' @' 구문 없이 보간멀티 라인 문자열을 표시하는 문자열 여기 불린다.

당신은 변수를 사용하여 Get-Content cmdlet을 사용할 수 없습니다/필요 없어, 대신 XML로 캐스팅 :

[xml]$modificationData = xmldata 
+1

니스, 난 단지 문자 줄 바꿈을 포함 할 수 PowerShell의 그 일반 문자열을 추가 할 것입니다 그들은 여전히 ​​작동 : 그냥 [xml] 캐스팅하려는 때문에

, 당신은 단지 그렇게 할 수 – briantist