0

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

为什么下面的语法是追加而不是替换?

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

我也试过

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

......似乎没有任何作用。毫不奇怪,等效的 withGet-Content也不起作用:

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

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

4

1 回答 1

0

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

$Content = Get-Content example.txt;
If ($Content[-1] -eq '|') {
    $Content.Substring(0,$Content.Length-1) > example.txt
}
于 2013-04-09T01:47:24.553 回答