我正在使用Get-Content命令处理文件,进行替换,然后将其通过管道传递到Set-Content或Out-File。但是在所有换行之前,该文件都带有CR写入。我的原始文件具有换行符,可以,但是CR会中断文件的用途。
我尝试过此Powershell替换文件中的内容添加了多余的回车符
但是无法使其正常工作。而且我想尽可能避免使用.NET
这是我的代码:
(Get-Content "FILE.TEMPLATE") -replace('SEQUENCE', "$NEWSEQUENCE") | Set-Content ("FILE.NEW")
要么
(Get-Content "FILE.TEMPLATE") -replace('SEQUENCE', "$NEWSEQUENCE") | Set-Content ("FILE.NEW") -Encoding UTF8NoBOM
我尝试在Set-Content管道之后使用'-Encoding'设置编码,但这无济于事。尝试使用UTF8,UTF8NoBOM。该输出文件注定要在UNIX机器上使用,这就是CR破坏文件的原因。
有任何想法吗?
花了一些时间来挖掘,这才是有效的
(Get-Content "FILE.TEMPLATE" -Raw) -replace 'SEQUENCE', "$NEWSEQUENCE" |
Set-Content "FILE.NEW" -NoNewLine -Encoding UTF8NoBOM
不得不添加-Raw
到获取内容,然后加-NoNewLine
和-Encoding UTF8NoBOM
来Set-Content
。
这仅适用于PowerShell 6+,因为下面没有任何内容UTF8NoBOM
作为编码选项。Powershell 5默认为UTF8BOM
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句