首页 > 解决方案 > 仅将 xml 文件中的第一个字符串替换为 Powershell 中的新字符串

问题描述

我有一个 powershell 脚本,它替换文件中的每一次出现:

$destination_file =  'd:\2.xml'
(Get-Content $original_file) | ForEach-Object {
    $_.replace('<Id>10810</Id>', '<Id>107502</Id>').replace('<Id>10811</Id>', '<Id>107503</Id>').replace('<Id>10812</Id>', '<Id>107504</Id>').replace('<Id>10813</Id>', '<Id>107505</Id>').replace('<Id>10765</Id>', '<Id>107506</Id>').replace('<Id>10766</Id>', '<ParentId>107613</ParentId>').replace('<ParentId>11818</ParentId>', '<ParentId>107647</ParentId>').replace('<ParentId>11818</ParentId>', '<ParentId>107001</ParentId>').replace('<ParentId>5002</ParentId>', '<ParentId>107404</ParentId>').replace('<ParentId>11564</ParentId>', '<LogicalParentID>107404</LogicalParentID>').replace('<LogicalParentID>5002</LogicalParentID>', '<LogicalParentID>107228</LogicalParentID>').replace('<LogicalParentID>10808</LogicalParentID>', '<LogicalParentID>107500</LogicalParentID>')
 } | Set-Content $destination_File

每个 xml 节点都有许多属性,例如:

<id>9203</id>
<ParentId>107404</ParentId>
<LogicalParentID>107500</LogicalParentID>
and many more

我只想替换每个部分中的那 3 个。我制作的脚本替换了孔文件中所有出现的“107404”。 我只想更换一次。怎么能这样,请帮忙?

标签: powershellreplace

解决方案


推荐阅读