我是Powershell的新手,我基本上用它来操作多个xml文件来完成我的工作任务。我使用基于xml的专有文件,这意味着它们有自己的扩展,但基本上都是xml。如果您能帮助我弄清楚如何使用ps1脚本更改以下示例中的'xml:lang'属性的值,我将不胜感激。假设我有多个带有* .flprj扩展名的文件,它们都共享以下内容:
<?xml version="1.0" encoding="utf-8"?>
<CatapultProject Version="1" xml:lang="en-gb" />
我想要实现的是在包含来自'en-gb'的* .flprj文件的所有子文件夹中递归地更改xml:lang属性的值,让我们说'nl-nl'。我想出了如何通过替换字符串来实现这一点,但我宁愿替换值,因为源语言可能会有所不同。我非常感谢你的建议。
答案 0 :(得分:0)
这是一个让你前进的例子。可能需要根据您的xml(多个lang值,位置++)进行调整。
例如:
Get-ChildItem -Path "C:\Folder\" -Filter "*.flprj" -Recurse | Foreach-Object {
$xml = [xml](Get-Content $_.FullName)
if($xml.CatapultProject.lang -eq 'en-gb') {
$xml.CatapultProject.lang = "nl-nl"
$xml.Save($_.FullName)
}
}