我正在尝试使用以下代码:
ls *.xml | Foreach {$i=1} {
$nonParsedXML = $_
[xml]$parsedXML = Get-Content $nonParsedXML -Encoding utf8
$title = $parsedXML.title
$nonParsedXMLwithExtension = "$($title).xml"
Rename-Item $nonParsedXML -NewName $nonParsedXMLwithExtension
}
代码尝试重命名文件,新名称是文件中标记的内容。当标签的内容是英文时它可以工作,但是当内容是希伯来语时它无法正常工作 - 代码重命名文件,但我看到的是块状字符而不是希伯来字符。
如果您想知道,当我使用PowerShell ISE时会出现问题。 当我在命令提示符下使用PowerShell时,代码无法运行,因为它根本无法处理希伯来语字符并产生错误。
您能否澄清一下这个问题?有解决方案吗?
答案 0 :(得分:1)
它似乎是默认文件字符集,尝试将其更改为扩展字符集。
我希望本文能为您提供帮助。
答案 1 :(得分:0)
一个非常友好和乐于助人的人给了我解决方案。这是:
dir -Path C:\Temp\Test -Filter *.xml | ForEach-Object {
$xml = [xml](Get-Content -Path $_.FullName -Encoding UTF8)
Rename-Item -Path $_.FullName -NewName "$($xml.title).xml"
}