2017-07-14 10 views
1

初めてここで質問していますので、うまくいけば正式にフォーマットされています。さまざまな効果のためにpowershellでcsvを参照する変数を作成する方法

短くても、私のバディは、サーバー上の既存のXMLドキュメントを指し、値を変更するスクリプトを作成しました。

私はそのスクリプトを変更していくつかの値を入れ替えて繰り返し実行する必要があります。変数は、XMLがロードされるサーバー名(つまり、// 変数/C $/folder1/folder2/targetXml)と、それが作成する2つのテキストノードのテキストになります。

私は、上記の変数をCSVを参照して設定することが可能であることは知っています。 私のCSVは4列210行です。 210台のサーバーを参照すると、コードは各XMLに書き込まれる必要がある3つの可変データからXMLを読み込みます。

すべてのサーバーでXMLの構造が一貫しているため、適切な値を変更するためにスクリプトを変更する必要はありません。私はちょうど取得する方法を知っておく必要があります。

[xml]$GMX = new-object system.Xml.XmlDocument 
$XmlPath = "\\server1\C$\file1\Target.xml" 
$GMX.load("\\server1\C$\file1\Target.xml") 

$PhnNumNode = $GMX.CreateElement("SourcePhoneNumber") 
$PhnNumText = $GMX.CreateTextNode("1234567890") 
$PhnNumNode.AppendChild($PhnNumText) 
$TextNode.AppendChild($PhnNumNode) 

と、server1はCSVの図1bをセルに指し示す変数となっており、電話番号1234567890はの列cでセルを指す変数となっているためにそれぞれ同じ行になります。 IE 2b + 2c、3b + 3c、等々であり、その後、順次行ごとに自己を再実行する。

どのように変数値を作成し、それをCSVの値に関連付けるのですか?

私の初心者のために私を許し、事前に感謝!

+0

あなたのCSVは、ヘッダーを持っていますか? – TheMadTechnician

答えて

0

だけ粗いフレーム:

$ServerList = Import-Csv .\ServerList.csv # If no header specify -Header ServerName,PhoneNo 

ForEach($Server in $ServerList){ 
    [xml]$GMX = new-object system.Xml.XmlDocument 
    $XmlPath = "\\$($Server.ServerName)\C$\file1\Target.xml" 
    $GMX.load($XmlPath) 

    $PhnNumNode = $GMX.CreateElement("SourcePhoneNumber") 
    $PhnNumText = $GMX.CreateTextNode($Server.PhoneNo) 
    $PhnNumNode.AppendChild($PhnNumText) 
    $TextNode.AppendChild($PhnNumNode) 

    # $GMX.Save ??? 
} 
関連する問題