如何使用命令替换文件中的内容

How to replace content in file using command

我需要使用 PowerShell 命令将字符串替换到文件中。

文件中有 XML 个元素,我需要用另一个字符串 <version>3.0.0.0</version>.

替换特定元素 <version>1.0.0.0</version>

对于普通字符串,我可以这样写:

(Get-Content "D:\data.text").replace('1.0.0', '3.0.0') | Set-Content D:\data.text

如何做表达式或模式来替换<version></version>元素之间的内容。


编辑:

文件内容如下:

<?xml version="1.0"?>
<package>
  <metadata>
    <id>C:\BuildAgent_SpiderWeb\workd106957b762949   \buildoutput\LatestPublished</id>
    <version>3.0.0</version>
    <authors>sonidha-a</authors>
  </metadata>
</package>

需要:替换ID元素和Version元素之间的内容。

不要对 XML 数据进行字符串替换。曾经。如果你这样做,彩虹独角兽会死。

相反,使用 PowerShell 的 XML 解析器,正如 @Deadly-Bagel 已经建议的那样:

[xml]$xml = Get-Content 'C:\path\to\your.xml'
$xml.package.metadata.version = '3.0.0.0'
$xml.Save('C:\path\to\output.xml')