首页 > 解决方案 > 输出文件和回车

问题描述

如果我有一个程序,例如这个 Go 程序:

package main
import "fmt"

func main() {
   fmt.Print("North East\n")
   fmt.Print("South West\n")
}

这个程序根本不产生回车,只产生换行符。但是,如果我这样做:

prog.exe > prog.txt

PowerShell 会自行在每一行添加回车符。我只希望 PowerShell 忠实地输出我的程序创建的内容,仅此而已。所以我尝试了这个:

prog.exe | Out-File -NoNewline prog.txt

并且 PowerShell 没有添加回车符,但它也继续删除了换行符。我该如何做我想做的事?更新:根据答案,这似乎可以做到:

start -rso prog.txt prog.exe

标签: powershellnewlinecarriage-returncmdlets

解决方案


这似乎是由于重定向输出的行为。它在检测到换行符的地方被分成单独的行,但是当 Powershell 再次加入这些行时,它将同时使用换行符回车符(Windows 默认)。

不过,如果您直接重定向输出,这应该不是问题。所以这应该会给你预期的行为:

Start-Process prog.exe -RedirectStandardOutput prog.txt

推荐阅读