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

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

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

答案1

cmd总是输出新行它会打印提示符。这意味着

> echo foo
foo

> _

总是会有空白行,因为echo会自动打印换行符。但是,

> set /p x=foo<nul
foo
> _

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

这样做大概是为了提示总是在行首,不管上一个命令的输出有多乱。在 UNIX 类系统中,由于上一个命令没有打印换行符,所以提示符通常位于行的中间。

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

您可以轻松地通过管道进行任何操作

findstr /r /v /c:"^$"

尽管。

答案2

这实际上取决于您正在运行的命令,因为它们可能被配置为在运行后执行此操作 - 您可能想看看它们是否具有非详细选项(但是,我怀疑这是否有帮助)。

另一个可以尝试的方法是将其放在开头:

@Echo 关闭

但不幸的是,我认为你不会有太多的运气,因为我认为所有命令在完成后都会有一个换行符(完成后会返回/调出命令提示符)。

最好的办法是使用后期处理工具并简单地删除换行符,但我不知道有哪个好的工具可以推荐。

相关内容