在Windows批处理中,Linux shell命令echo -n抑制输出末尾的换行符是什么?
其思想是在循环中的同一行上写入。
在Windows批处理中,Linux shell命令echo -n抑制输出末尾的换行符是什么?
其思想是在循环中的同一行上写入。
当前回答
我发现这个简单的单行批处理文件“EchoPart.bat”非常有用。
@echo | set /p=%*
然后,我可以在交互式CMD行中,或者作为快捷方式的一部分,写如下所示的内容。它带来了一些新的可能性。
echopart "Hello, " & echopart "and then " & echo Goodbye
如果你在批处理文件中使用它,文本可以从参数变量而不是不可变字符串中获得。例如:
@echopart Hello %* & @echo , how are you?
因此,在"SayHello.bat"中执行这一行允许:
甚至……
玩个游戏,玩得开心!
其他回答
你可以从gnuwin32 (coreutils包)中使用“tr”删除换行符
@echo off
set L=First line
echo %L% | tr -d "\r\n"
echo Second line
pause
顺便说一下,如果您正在编写大量脚本,gnuwin32是一个金矿。
从这里
<nul set /p =Testing testing
同时也从空间的使用开始呼应
echo.Message goes here
这里是另一个方法,它使用Powershell Write-Host,它有一个-NoNewLine参数,结合start /b,它从批处理中提供了相同的功能。
NoNewLines.cmd
@ECHO OFF
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 1 - ';Write-Host -NoNewLine 'Result 2 - ';Write-Host -NoNewLine 'Result 3 - '"
PAUSE
输出
Result 1 - Result 2 - Result 3 - Press any key to continue . . .
下面这个略有不同,并不完全像OP想要的那样工作,但很有趣,因为每个结果都覆盖了模拟计数器的前一个结果。
@ECHO OFF
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 1 - '"
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 2 - '"
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 3 - '"
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 4 - '"
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 5 - '"
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 6 - '"
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 7 - '"
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 8 - '"
start /b /wait powershell.exe -command "Write-Host -NoNewLine 'Result 9 - '"
PAUSE
SET /P中被剥离空白的解决方案:
窍门是你可以在DOS的文本编辑器EDIT中调用的退格字符。要在EDIT中创建它,请按ctrl +ctrlH。 我想把它粘贴在这里,但是这个网页不能显示它。它在记事本上是可见的(它很奇怪,就像一个小的黑色矩形,中间有一个白圈)
你可以这样写:
<nul set /p=.9 Hello everyone
点可以是任何字符,它只是告诉SET /P文本从这里开始,在空格之前,而不是在“Hello”处。 “9”是一个退格字符的表示,我不能在这里显示。你必须用它来代替9,它就会删除",之后你会得到:
Hello Everyone
而不是:
Hello Everyone
我希望这对你们有帮助
使用Bill Stewart的“Shell脚本工具包”中的EchoX.EXE 如何在Windows Cmd脚本中抑制换行:
@Echo Off
Rem Print three Echos in one line of output
EchoX -n "Part 1 - "
EchoX -n "Part 2 - "
EchoX "Part 3"
Rem
给:
Part 1 - Part 2 - Part 3
{empty line}
d:\Prompt>
这种用法的帮助是:
Usage: echox [-n] message
-n Do not skip to the next line.
message The text to be displayed.
该实用程序小于48K,应该位于Path中。它可以做的更多事情:-打印文本而不移动到下一行-打印文本在一定宽度内向左、中间或右边对齐-打印文本与制表符,换行和返回-打印文本在前景和背景颜色
该工具包还包括12个很棒的脚本编写技巧。 下载页面还包含其他三个有用的工具包。