2013-01-21 2 views
1

Lync 프로비저닝을 처리 할 스크립트를 만드는 프로젝트가 있습니다. 가능한 한 모듈 식으로 유지하려고합니다. 필자는이 스크립트 파일을 자체 디렉토리에 보관하는 것이 가장 효과적이라고 생각합니다. 'scopedConfig'& 'centralXML'은 전역 적으로 유용한 태그를 사용합니다.XML을 PowerShell 스크립트로 연속적으로 가져옴

내가 가진 문제는 Get-content를 사용하여 2 개의 XML 파일을 연속적으로 가져 오려고 할 때입니다.

내가 가진 코드는 다음과 같습니다

"------------------" 
"------------------" 
$centralXML 
"------------------" 
$scopedXML 
"------------------" 
"------------------" 

결과 어디에 문제가 거짓말을하면 출력 :

# Import CentralConfig 
[xml]$centralXML = Get-content ".\centralConfig.xml" 

# Import ScopedConfig 
[xml]$scopedXML = Get-content ".\ExecutionResources\ScopedConfigfiles\HostConsole\config.xml" 

내가 테스트 성공적으로 가져 오기 해요 다음 :

------------------ 
------------------ 
Global_ConfigRoot 
----------------- 
Global_ConfigRoot 
------------------ 

------------------ 
------------------ 

두 XML의 루트 노드를 출력으로 예상했지만 대신 첫 번째 노드의 루트 노드 만 가져옵니다. $ scopedXML이 첫 번째가되도록 반올림하면 $ scopedXML 루트 노드 만 생기고 $ centralXML에서는 아무 것도 얻지 못합니다.

------------------ 
------------------ 
Global_ConfigRoot 
----------------- 
Global_ConfigRoot 
------------------ 














































------------------ 
------------------ 
: 당신이 일반적으로 모든 XML 관련 사물을 기대하고 특성을 어디, 나는 공백의 전체 부하를 얻을 -

주목해야 할 흥미로운 점은 2 XML이 멤버를 가져 오기 위해 I 파이프 경우이다

전 본 적이 없지만 다른 사람에게 제안 사항이 있습니까?

답변

0

함수, cmdlet 또는 스크립트는 객체를 반환 할 수 있습니다 (PS는 게시 규칙을 유지하는 것도이 여기에 게시 나의 처음 잘못 알려 주시기 위해 최선을 시도). 두 변수를 모두 호출하는 것처럼 여러 개 반환하면 실제로 두 항목 (+ 사용자가 인쇄 한 줄)을 모두 포함하는 object[] 배열을 반환합니다. 객체는 변경되지 않고이 컬렉션에 추가되었습니다.

이제 스크립트는 반환 된 객체를 출력 (표시) 할 때 내부에 여러 객체가 있으므로 테이블 형식을 지정합니다. 테이블에는 헤더 (열 이름)가 1 개만 포함될 수 있으며 배열을 표시 할 때는 첫 번째 항목 (이 경우 $centralxml)의 열 (속성)을 사용합니다. 그래서 xml과 서버의 두 열을 얻습니다.

스크립트를 구분하려면 스크립트에 별도의 테이블 형식을 지정해야합니다. 예 :

# Import CentralConfig 
[xml]$centralXML = Get-content ".\test.xml" 

# Import ScopedConfig 
[xml]$scopedXML = Get-content ".\test2.xml" 

$centralXML | Format-Table 
$scopedXML | Format-Table 
+0

답변과 설명을 보내 주셔서 감사합니다. 나는 어리 석었지만 교육을 받았다.) – AndyMeFul

관련 문제