2013-04-09 77 views
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 

我認爲這是一些問題與正確解析管,但我不確定如何補償。

回答

0

感謝Freenode上#powershell的一些幫助,我現在擁有它。

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