【发布时间】:2017-03-15 13:37:59
【问题描述】:
考虑一个带有 BOM 编码的 UTF8 文件,我们称之为 1.txt。接下来考虑以下文件:
Set-Content 2.txt $(cat 1.txt -Raw) -Encoding UTF8
这两个文件不相等! Powershell 添加了一个额外的新行。有没有办法阻止它这样做?
附言
我想这里的编码无关紧要,但在我的实际示例中,文件是带有 BOM 的 UTF8,所以让我们保留它。
编辑 1
似乎答案是执行以下操作:
[io.directory]::SetCurrentDirectory($pwd)
[io.file]::WriteAllText("1.txt", $(cat 15786.sql -Raw), [text.encoding]::UTF8)
是这样吗?解决问题最好的方法是不要使用PowerShell Set-Content 命令?也许有更简单的方法?
【问题讨论】:
-
你有 PowerShell v5 吗?
-
@Matt Powershell v5 并不能避免使用
Set-Content添加换行符,我刚刚测试过。或者我不知道 PS5 是否还有其他问题? -
Set-Content有一个开关-NoNewline应该可以解决您的目的。你能试试看吗
标签: powershell newline