使用 powershell 在 XML 文件中查找和替换
Find and replace in XML file with powershell
现在我正在使用 PowerShell Studio 2017 生成带有 GUI 的 XML 文件。这段代码将选中的项目收集在 CheckedListBox 中:
$Groups = $chklistGroups.CheckedItems | ForEach-Object {
"<Group>$_</Group>`n`t`t`t`t"
}
其中一些复选框包含 &
,这显然不能在 XML 文件中。有什么方法可以删除 &
并将其替换为这段代码中的适当 &
吗?这个 XML 文件然后被传递到另一个脚本中,我试图用这个删除符号:
# check the xml file for & and replace them with & 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('&','&')
}
通常是在创建 XML 之前执行此操作更好,还是在将其放入脚本本身之后执行此操作?我的假设是最好在创建之前就完成它。如果是这样,是否可以在第一段代码中做到这一点?
您可以在 ForEach-Object
:
内完成替换
$Groups = $chklistGroups.CheckedItems | ForEach-Object {
"<Group>$($_.Replace('&','&'))</Group>`n`t`t`t`t"
}
现在我正在使用 PowerShell Studio 2017 生成带有 GUI 的 XML 文件。这段代码将选中的项目收集在 CheckedListBox 中:
$Groups = $chklistGroups.CheckedItems | ForEach-Object {
"<Group>$_</Group>`n`t`t`t`t"
}
其中一些复选框包含 &
,这显然不能在 XML 文件中。有什么方法可以删除 &
并将其替换为这段代码中的适当 &
吗?这个 XML 文件然后被传递到另一个脚本中,我试图用这个删除符号:
# check the xml file for & and replace them with & 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('&','&')
}
通常是在创建 XML 之前执行此操作更好,还是在将其放入脚本本身之后执行此操作?我的假设是最好在创建之前就完成它。如果是这样,是否可以在第一段代码中做到这一点?
您可以在 ForEach-Object
:
$Groups = $chklistGroups.CheckedItems | ForEach-Object {
"<Group>$($_.Replace('&','&'))</Group>`n`t`t`t`t"
}