第一次在这里问一个问题,所以希望它的格式正确。
简而言之,我的好友创建了一个脚本,指向服务器上预先存在的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上的值相关联?
原谅我的新手,并提前感谢!
答案 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 ???
}