我必须阅读一个属性文件(让我们说prop.txt
)并动态更新它。
内容看起来像这样。
server.names=xyz[500],server2[500],test[500]
我想在server.names=
之后用正确的值替换内容,例如:
server1.company.com[500],server2.company.com[500],server3.company.com[500]
我尝试了以下命令,但它正在替换server.names=
。我想替换server.names=
(Get-Content $path).Replace("server.names=",$NewServerNames) | Set-Content $path
知道如何替换server.names=
的价值吗?
答案 0 :(得分:2)
你很接近,但你的语法已关闭。此解决方案利用正则表达式捕获原始密钥:
$Pattern = 'server\.names='
Get-Content -Path $Path |
ForEach-Object {
If ($_ -match $Pattern)
{
$_ -replace "($Pattern).*","$1$NewServerNames"
}
Else
{
$_
}
} |
Set-Content -Path $Path