2015-06-17 3 views
0

Я пытаюсь получить список полей из соединения с файлом с плоским файлом. Я попробовал следующую команду powershell.Извлечь информацию из файла SSIS xml?

[xml]$p = cat .\package.dtsx 
$p.Executable.ConnectionManager 

И это возвращает

 
Property             ObjectData 
--------             ---------- 
{DelayValidation, ObjectName, DTSID, Description...}  ObjectData 
{DelayValidation, ObjectName, DTSID, Description...}  ObjectData 
{DelayValidation, ObjectName, DTSID, Description...}  ObjectData 
{DelayValidation, ObjectName, DTSID, Description...}  ObjectData 
{DelayValidation, ObjectName, DTSID, Description...}  ObjectData 
{DelayValidation, ObjectName, DTSID, Description...}  ObjectData 
{DelayValidation, ObjectName, DTSID, Description...}  ObjectData 
...... 

Как найти конкретное соединение по имени? Я попробовал следующее, но это не сработает.

# Find the connection which name is "XXX" 
$p.Executable.ConnectionManager | % { $_.Property } | ? { $_.ObjectName -eq "XXX" } 

ответ

0

Играя вокруг, я как бы выяснил, как найти конкретное соединение.

$c = $p.Executable.ConnectionManager | ? { $_.Property[1]."#text" -eq "XXX" } 

Теперь необходимо получить все столбцы. Следующий оператор получает xml.

$c.ObjectData.ConnectionManager.OuterXml 

Однако тип данных является целым числом.

Смежные вопросы