如何在MS-DOS脚本中打印换行符?

Bry*_*cke 5 formatting newline dos batch-file

我想在MS-DOS中打印程序的输出,所以我写了一个.bat文件,上面写着:

cls
ruby foo.rb
Run Code Online (Sandbox Code Playgroud)

但输出 - 因为它出现在我的命令提示符 - 看起来像这样:

c:\workspace>ruby foo.rb
foo output
c:\workspace>
Run Code Online (Sandbox Code Playgroud)

我想插入一个新行到使用MS-DOS的输出,因为我不想亵渎我的Ruby代码与任何不相关的代码的作用应该做的事情.

MS-DOS中看起来像我想要的唯一命令是'type'和'print',但它们都用于打印文件.

我尝试使用两个空行创建一个文本文件,并使用'type'命令输出它,但它看起来很乱.

任何想法,将不胜感激.

Joh*_*n T 24

echo. 将产生一条新线.

所以你的脚本应该是这样的:

@ECHO OFF
cls
echo.
ruby foo.rb
Run Code Online (Sandbox Code Playgroud)

  • 你让我免于死亡.谢谢. (2认同)

jeb*_*jeb 6

即使这里有 4 个使用相同提示的答案ECHO.,这也不是最佳解决方案!

有两个缺点。


  1. ECHO.普通 echo命令慢约 10 倍,这是因为ECHO.会强制访问磁盘

  2. 它可能会失败
    如果文件存在名称ECHO(没有扩展名),那么每个ECHO.命令都会导致文件未找到错误,而不是回显空行。

但是你能做什么呢?
对于简单的空行,有多种工作方式。

echo+
echo=
echo;
echo,
echo:
echo(
Run Code Online (Sandbox Code Playgroud)

但有时您需要一种安全的方式来回显变量的内容,即使变量为空或包含奇数内容,如/?\\..\..\windows\system32\calc.exe

ECHO<character>%variable%

echo=/?
echo;/?
echo,/?
echo:\\..\..\windows\system32\calc.exe
Run Code Online (Sandbox Code Playgroud)

那么大多数命令都会失败,只ECHO(在任何情况下都有效。
它看起来有点奇怪,但它可以工作,并且不需要也不需要使用右括号也不会造成任何麻烦。