我是 Powershell 的新手。我正在尝试对文件中的文本进行多次替换,但我得到了重复的行。我的测试文件有以下几行:
This is a test.
There is a test.
我运行以下脚本:
(Get-Content "C:\temp\test.txt") |
foreach-object {
if ($_ -match "This"){
$_ -replace "This" , "That"
}
if ($_ -match "test"){
$_ -replace "test" , "toast"
}
} | Set-Content "C:\temp\test.txt"
我的输出应该是:
That is a toast.
There is a toast.
但它为输入中第一行的替换输出单独的行:
That is a test.
This is a toast.
There is a toast.
如您所见,在两行之间,第二行仅满足“匹配”条件之一并被正确替换。但是,第一行输出两次——每次替换一个。如果该行同时满足两个条件,我需要脚本仅输出该行一次。