Formatting 如何在MS-DOS脚本中打印换行符?
我想用MS-DOS打印程序的输出,所以我写了一个.bat文件,上面写着:Formatting 如何在MS-DOS脚本中打印换行符?,formatting,batch-file,newline,dos,Formatting,Batch File,Newline,Dos,我想用MS-DOS打印程序的输出,所以我写了一个.bat文件,上面写着: cls ruby foo.rb 但输出(如我的命令提示符所示)如下所示: c:\workspace>ruby foo.rb foo output c:\workspace> @ECHO OFF cls echo. ruby foo.rb 我想使用MS-DOS在输出中插入一个换行符,因为我不想用任何与代码应该做什么无关的东西污染我的Ruby代码 MS-DOS中唯一看起来像我想要的命令是“type”和“pri
cls
ruby foo.rb
但输出(如我的命令提示符所示)如下所示:
c:\workspace>ruby foo.rb
foo output
c:\workspace>
@ECHO OFF
cls
echo.
ruby foo.rb
我想使用MS-DOS在输出中插入一个换行符,因为我不想用任何与代码应该做什么无关的东西污染我的Ruby代码
MS-DOS中唯一看起来像我想要的命令是“type”和“print”,但这两个命令都用于打印文件
我试着创建一个包含两个空行的文本文件,并使用“type”命令输出它,但它看起来很混乱
任何想法都将不胜感激。试试这个
echo.
使用后跟句点的echo命令在MS-DOS批处理文件中显示新行:
echo.
echo.
将产生一个新行
因此,您的脚本应该如下所示:
c:\workspace>ruby foo.rb
foo output
c:\workspace>
@ECHO OFF
cls
echo.
ruby foo.rb
我不清楚你想要什么,但也许这会有帮助 如果要将输出发送到其他地方,请使用dos输出“管道” 将ruby命令的输出输出输出到out.txt文件 如果要控制输出,请使用ECHO
@ECHO OFF/ON //turns off/on command output
ECHO "Blah" //writes "Blah" to the console.
ECHO. //writes a blank line to the console.
那么:
@echo off
cls
echo.
ruby foo.rb
echo.
再见即使这里有4个答案使用相同的提示。ECHO.,它也不是最好的解决方案 有两个缺点
ECHO.
比正常的ECHO
命令慢约10倍,这是因为ECHO.
将强制磁盘访问如果存在名为
ECHO
(不带扩展名)的文件,则每个ECHO.
命令将导致文件未找到错误,而不是回显空行对于一个简单的空行,有许多工作方式
echo+
echo=
echo;
echo,
echo:
echo(
但是,有时您需要一种安全的方法来回送变量的内容,即使该变量为空或包含诸如/?
或\\..\windows\system32\calc.exe等奇数内容
ECHO%变量%
echo=/?
echo;/?
echo,/?
echo:\\..\..\windows\system32\calc.exe
然后most命令将失败,只有ECHO(
在任何情况下都有效。
它看起来有点奇怪,但它可以工作,并且不需要也不需要在右括号中设置任何问题。我同意jeb的观点。“echo”(“echo”)绝对更快,并且不会调用文件访问。只要尝试一下,您就会知道。下面是一个您可能想要尝试的小测试
创建一个名为“echo”的文件,并在同一目录中创建一个test.bat或test.cmd文件,脚本中包含以下内容:
@echo off
echo %time%
echo.
echo Hello, World
echo.
echo.
echo What time is it?
echo.
echo It's Miller Time!
echo.
echo.
echo CHEERS!
echo.
echo %time%
运行新创建的批处理文件。您会得到什么?当同一目录中存在文件“echo”时,会收到一系列错误消息
现在,删除“echo”文件
在我的系统上,由于正在进行文件访问,使用“echo.”方法从开始到结束大约需要0.05秒
现在,将上面测试文件中的所有“echo.”替换为“echo”(),然后再次运行它
使用“echo”()语句从开始到结束大约需要0.01秒
最后一次测试,在同一目录中重新引入一个名为“echo”的文件,并最后一次运行批处理
没有错误消息
QED你救了我一命。谢谢。最后一行不会回显空行。它回显“开”或“关”取决于第一行设置的状态。要获得空行,你必须回显。
正如其他人指出的那样。“回显。
将强制磁盘访问”真的吗?标准问题是。@PeterMortensen尽管标题相似,但这是一个不同的问题。这个问题问如何输出一个空行。你链接的问题问如何在各自的行上输出两个单词。