如何阻止 Windows 命令行在每个命令后输出空行?

Umb*_*ule 5 windows command-line

我正在将批处理文件的输出重定向到文本文件中,并且不希望每个命令之间有空行。我意识到我可以使用 perl one-liner 进行后期处理,但我宁愿不这样做。是否有选项可以抑制这些不必要的空行?

Joe*_*oey 7

cmd在打印提示符之前总是输出一个新行。这意味着像

> echo foo
foo

> _
Run Code Online (Sandbox Code Playgroud)

echo由于自动打印换行符,因此将始终有该空行。然而,像

> set /p x=foo<nul
foo
> _
Run Code Online (Sandbox Code Playgroud)

之间不会有空行,因为上面是允许打印内容而没有尾随换行符的技巧。尽管如此,提示仍然出现在下一行的开头。

这样做大概是为了使提示始终位于行的开头,无论最后一个命令的输出有多么混乱。在类 UNIX 上,由于最后一个命令没有打印换行符,因此通常会在行的中间找到提示符。

但似乎没有办法阻止他的行为。

你可以轻松地通过管道传输你正在做的任何事情

findstr /r /v /c:"^$"
Run Code Online (Sandbox Code Playgroud)

尽管。