如何使用命令替换文件中的内容
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')
我需要使用 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')