2017-09-19 56 views
0

產生CLXML文件後:替換CLXML文件中的新行

[string]$myString = 'foobar' | Export-Clixml -Path C:\Files\test.clxml 

我試圖刪除線咫尺錨>後壞。我曾嘗試:

(Get-Content C:\Files\test.clxml) -replace "`n", "" | Set-Content C:\Files\test.clxml 

使用-replace r也試過,但這個從文件中剝離出來r字符。

我在做什麼錯?

回答

0

你的問題是,在你的測試中沒有換行符可以替換。 Get-Content返回一個字符串數組在渲染時被視爲在屏幕上顯示換行符。要真正把它們放到要被操縱的字符串中,可以嘗試其中的一種。

(Get-Content C:\Files\test.clxml -Raw) -replace "`n" | Set-Content C:\Files\test.clxml 
(Get-Content C:\Files\test.clxml | Out-String) -replace "`n" | Set-Content C:\Files\test.clxml 

如果有PS版2.0

+0

頂一個工作正常。 – LightningWar

1

Get-Content返回陣列保持每個單獨的線(不含有任何換行符)後者將是必要的。

Set-Content將您的行數組寫入單個文件,將它們與換行符分開。

這意味着你應該做到以下幾點得到你想要的東西:

(Get-Content C:\Files\test.clxml) -join "" | Set-Content C:\Files\test.clxml