Powershell最终添加了一条新线-如何防止它?

Powershell最终添加了一条新线-如何防止它?,powershell,newline,Powershell,Newline,考虑一个带有BOM编码文件的UTF8,我们称它为1.txt。下一步考虑以下文件: Set-Content 2.txt $(cat 1.txt -Raw) -Encoding UTF8 这两个文件不相等!Powershell添加了一个额外的新行。有没有办法阻止它这样做 附言 我想这里的编码并不重要,但在我的实际示例中,文件是带有BOM的UTF8,所以让我们保留它 编辑1 找到以下职位- 答案似乎是这样的: [io.directory]::SetCurrentDirectory($pwd) [io

考虑一个带有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
设置内容
命令?也许有更简单的方法

似乎答案是做以下事情

在v5之前,这当然是避免这种情况的一种方式

从那时起,
-NoNewLine
的开关被添加到cmdlet中,如。所以,如果简单性是你的终极目标,那么它应该可以很好地发挥作用。这一变化是不公平的


如前所述,该开关也适用于和

您有PowerShell v5吗?@Matt PowerShell v5没有从添加带有
设置内容的换行符中节省下来
,我刚刚测试了这一点。或者我不知道PS5还有什么问题吗?
Set Content
有一个开关
-NoNewline
,可以解决您的问题。你能试试看吗