我需要在两个值之间的文件中更改字符串。我想要做的是,如果我找到值A然后更改为值B,如果我找到值B然后更改为值A.将会有一个消息框弹出,表示该值已更改为[xxxxx]然后背景图片将是也相应改变了。
$path = c:\work\test.xml
$A = AAAAA
$B = BBBBB
$settings = get-content $path
$settings | % { $_.replace($A, $B) } | set-content $path
我无法弄清楚如何使用IF
A然后用B或IF
B替换然后替换A.此外,上面的代码将删除文件中的其余内容,并仅将我修改的部分保存回文件。
发布于 2019-02-22 11:51:58
这没有经过广泛测试,但我认为它应该有效:
path = c:\work\test.xml
$A = 'AAAAA'
$B = 'BBBBB'
[regex]$regex = "$A|$B"
$text =
Get-Content $path |
foreach {
$regex.Replace($text,{if ($args[0].value -eq $A){$B} else {$A}})
}
$text | Set-Content $path
如果不确切知道数据是什么样的话,很难确定。
https://stackoverflow.com/questions/-100006390
复制相似问题