【发布时间】:2021-03-04 12:13:34
【问题描述】:
我试图了解此 cmdlet 的一些奇怪行为。
如果我在通过 Windows 上下文菜单创建并输入文本的文本文件上使用“Out-File -append Filename.txt”,则字符串将以一系列空格分隔的形式附加到该文件的最后一行字符。
所以:
"This is a test" | out-file -append textfile.txt
将产生: 这就是我的想法
如果 out-file 创建文件,或者文本文件在追加之前没有文本,则不会发生这种情况。为什么会这样?
我还要注意,重复该命令只会以相同的方式附加到同一行。我猜它由于编码更改而无法识别换行符或换行符终止符或其他东西?
【问题讨论】:
-
Out-File默认为 unicode 编码。使用-Encoding Ascii。在你的情况下out-file -Encoding Ascii -append textfile.txt。 Add-Content 默认使用 ascii,也默认附加。"This is a test" | Add-Content textfile.txt。您没有发送换行符,因此它不会将一个换行符写入文件。 -
@Matt 您应该刚刚将您的第一条评论作为答案并认为问题已解决。
-
@TheMadTechnician 不确定是否值得回答重复的问题
-
@Matt 如果措辞足够不同,我认为它可以帮助更多人找到答案,因为每个人的搜索方式都不同。