替换行尾文本字符串的脚本



如果可能的话,我想修改这个脚本:

((Get-Content -path "C:UsersUser1OUTSummary.txt" -Raw) -replace '</ab></cb>','</x>') | Set-Content -Path "C:UsersUser1OUTSummary.txt"

我想要一个脚本,将运行与Windows操作系统搜索一个文件,它发现在这个路径:

C:UsersUser1FileSummary.txt

在该文件中,当它发现以:<a><b>Data

开头的数据时,,同时以:</ab></cb>

结尾需要将结尾改为:</x>并且需要在不更改文件名的情况下保存文件。

例如显示以下数据的一行:

<a><b>Data:</y> 12345678</ab></cb>

将更改为:

<a><b>Data:</y> 12345678</x>

上面的PowerShell脚本将找到</ab></cb>的所有实例并将其替换为</x>,这不是我希望完成的。

您可以使用Get-Content逐行处理文件,只有在<a><b>上有Match时才执行Replace。像这样:

$InFile = ".TestIn.txt"
$OutFile = ".TestOut.txt"
If (Test-Path -Path $OutFile) {Remove-Item $OutFile}
Get-Content $InFile | ForEach-Object -Process {
$NewLine = $_
If ($_ -Match '<a><b>') {
$NewLine = ($_ -Replace '</ab></cb>','</x>')
}
Add-Content $OutFile $NewLine
}

最新更新