考虑带有BOM编码文件的UTF8,我们称之为1.txt。接下来考虑以下文件:
Set-Content 2.txt $(cat 1.txt -Raw) -Encoding UTF8
这两个文件不相等! Powershell增加了一条新线。有没有办法阻止它这样做?
P.S。
我认为编码在这里并不重要,但在我的实际例子中,文件是带有BOM的UTF8,所以让我们保留它。
编辑1
似乎答案是执行以下操作:
[io.directory]::SetCurrentDirectory($pwd)
[io.file]::WriteAllText("1.txt", $(cat 15786.sql -Raw), [text.encoding]::UTF8)
是吗?解决问题的最佳方法是不使用PowerShell Set-Content
命令?也许有一种更简单的方法?
答案 0 :(得分:3)
似乎答案是要做到以下几点......
在v5之前,这肯定是要避免这种情况。
从那时起,-NoNewLine
的交换机已添加到Set-Content
等cmdlet中。所以,如果简单是你的最终游戏应该工作得很好。此更改为lobbied from the Community over the last few years。
如前所述,该切换也适用于Out-File
和Add-Content