从文本文件中删除最后一个管道

时间:2013-04-09 01:29:02

标签: powershell-v3.0

目标:我需要从文件中删除最后一个|,前提是它确实是文件中的最后一个\w字符。

为什么附加以下语法而不是替换?

[IO.File]::ReadAllText(".\example.txt") -replace '`|$','' > .\example.txt

我也试过

[IO.File]::ReadAllText(".\example.txt") -replace '\|$','' > .\example.txt

......似乎没有做任何事情。毫不奇怪,与Get-Content的等价物不起作用:

(Get-Content .\example.txt) | ForEach-Object {$_ -replace '$\|', ''} | Set-Content .\example.txt

我认为正确解析管道是一个问题,但我不确定如何补偿它。

1 个答案:

答案 0 :(得分:0)

感谢Freenode上#powershell的一些帮助,我现在就拥有它。

$Content = Get-Content example.txt;
If ($Content[-1] -eq '|') {
    $Content.Substring(0,$Content.Length-1) > example.txt
}