0
我試圖用Get-ChildItem
命令替換XML中的某些文件名。 XML中有6個文件名,每個文件夾中有6個文件。我所要做的就是用Get-ChildItem
命令替換XML中的文件名 如果有幫助,文件名總是加1。所以,我有以下幾點:使用Get-ChildItem命令替換XML中的文件名
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,
等等。
這給了我 無法設置「#text」,因爲只有字符串可以被用作值來設置的XmlNode性質的錯誤。 在線:6 char:3 + $ _。'#text'= $ file [$ i] + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],SetValueException + FullyQualifiedErrorId:XmlNodeSetShouldBeAString – s4ndz
只是試圖解釋一點。 $ xml.SelectNodes( '//文件名',$ XmlNSManager)返回 #text ----- 8429006775491_01_01.txt 8429006775491_01_02.txt 8429006775491_01_03.txt 8429006775491_01_04.txt 8429006775491_01_05.txt 8429006775491_01_06.txt 我想用 替換這些文件名$ files = Get-ChildItem $ dirname \ resources \ * -Filter * .txt -Recurse | select -Expand Name |排序 – s4ndz
@ s4ndz查看更新的答案。另一種方法是將文件名列表定義爲字符串數組('[string []] $ files = Get-ChildItem ...')。不知道爲什麼需要額外的轉換,因爲數組元素應該已經是字符串了。 –