如何在powershell中为各种效果创建引用csv的变量

时间:2017-07-14 22:47:48

标签: xml powershell csv

第一次在这里问一个问题,所以希望它的格式正确。

简而言之,我的好友创建了一个脚本,指向服务器上预先存在的XML文档并修改值。

我需要该脚本重复运行其自身,并在其中更改一些值。变量将是加载XML的服务器名称(即// 变量 / C $ / folder1 / folder2 / targetXml),以及它创建的几个文本节点的文本。

我知道可以通过参考CSV来填充所述变量。 我的CSV将是4列,210行。引用210服务器,代码正在从中加载XML和需要写入每个XML的3个可变数据。

所有服务器上的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上的值相关联?

原谅我的新手,并提前感谢!

1 个答案:

答案 0 :(得分: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 ???
}