替换CLXML文件中的新行

时间:2017-09-19 10:38:30

标签: powershell

生成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个字符。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

Get-Content会返回一个数组,其中包含每一行(不包含任何换行符)。

Set-Content将您的数组行写入一个文件,用换行符分隔它们。

意味着您应该执行以下操作以获得所需内容:

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

答案 1 :(得分:0)

您的问题是,在您的测试中,没有可替换的新行。 Get-Content返回一个字符串 array ,在呈现时被视为在屏幕上显示换行符。要实际将它们放入要操作的字符串中,请尝试其中之一。

(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

,则需要后者