2017-07-14 61 views
1

第一次在這裏提出問題,所以希望它的格式正確。如何在powershell中創建引用csv的各種效果變量

總之,我的一個好友創建了一個腳本,該腳本指向服務器上的預先存在的XML文檔並修改值。

我需要這個腳本來重複運行它的自我,並在其中改變一些值。這些變量將是加載XML的服務器名稱(即// 變量/C $/folder1/folder2/targetXml)以及它創建的幾個文本節點的文本。

我知道可以通過引用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 ??? 
}