使用Get-ChildItem命令替换XML中的文件名

时间:2015-08-17 13:53:23

标签: xml powershell-v4.0

我正在尝试使用Get-ChildItem命令替换XML中的某些文件名。 XML中有6个文件名,每个文件夹中有6个文件。我想要做的就是使用Get-ChildItem命令替换XML中的文件名 如果有帮助,文件名总是递增1。所以我有以下内容:

Get-ChildItem $dirname\resources\* -filter *.txt -recurse

返回6个文件名。当我选择一个XML节点时,这也会返回6个文件名。

$xml.SelectNodes('//FileName',$XmlNSManager)

如何从Get-ChildItem命令同步替换XML中的每个文件名?即

12341_1.txt --> 100011.txt,
12341_2.txt --> 100012.txt,
12341_3.txt --> 100013.txt,

等等。

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,那么这样的事情应该有效:

$files = Get-ChildItem $dirname\resources\* -Filter *.txt -Recurse |
         select -Expand Name | sort

$i = 0
$xml.SelectNodes('//FileName', $XmlNSManager) | % {
  $_.'#text' = [string]$files[$i]
  $i++
}