使用powershell在XML文件中查找和替换

时间:2017-08-10 13:10:05

标签: xml powershell powershell-studio

现在我正在使用PowerShell Studio 2017生成带有GUI的XML文件。这段代码收集CheckedListBox中的已检查项目:

$Groups = $chklistGroups.CheckedItems | ForEach-Object {
    "<Group>$_</Group>`n`t`t`t`t"
}

其中一些复选框包含&,显然不能在XML文件中。有没有办法删除&并将其替换为此代码段中的相应&amp;?然后将此XML文件传递到另一个脚本中,我尝试使用此脚本删除&符号:

# check the xml file for & and replace them with &amp; so it doesn't crash - except it doesn't work so it's gonna crash
if ($NewUserXML.NewUser.ActiveDirectory.User.Groups.Group.Contains("&"))
{
    "$($NewUserXML.NewUser.ActiveDirectory.User.Groups.Group)".Replace('&','&amp;')
}

在创建XML之前,或者在将其放入脚本本身之后,通常更好吗?我的假设是在创建它之前做它更好。如果是这样,是否可以在第一段代码中执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以在ForEach-Object

中完成替换
$Groups = $chklistGroups.CheckedItems | ForEach-Object {
    "<Group>$($_.Replace('&','&amp;'))</Group>`n`t`t`t`t"
}