在Windows批处理中,Linux shell命令echo -n抑制输出末尾的换行符是什么?

其思想是在循环中的同一行上写入。


当前回答

回显带有空格且没有换行符

如Pedro之前所述,没有新行和前面有空格的echo有效(假设“9”是一个真正的[BackSpace])。

<nul set /p=.9    Hello everyone

我在Windows 10的新主机上遇到了一些问题,但我还是通过以下方式解决了问题。 在CMD中输入:

echo .◘>bs.txt

我按[Alt] +[8]键实现了“▲” (实际符号可能因代码页而异)。

然后使用Notepad.exe将结果从“bs.txt”复制到需要的地方就很容易了。

@echo off
<nul set /p "_s=.◘    Hello everyone"
echo: here

其他回答

SET /P中被剥离空白的解决方案:

窍门是你可以在DOS的文本编辑器EDIT中调用的退格字符。要在EDIT中创建它,请按ctrl +ctrlH。 我想把它粘贴在这里,但是这个网页不能显示它。它在记事本上是可见的(它很奇怪,就像一个小的黑色矩形,中间有一个白圈)

你可以这样写:

<nul set /p=.9    Hello everyone

点可以是任何字符,它只是告诉SET /P文本从这里开始,在空格之前,而不是在“Hello”处。 “9”是一个退格字符的表示,我不能在这里显示。你必须用它来代替9,它就会删除",之后你会得到:

    Hello Everyone

而不是:

Hello Everyone

我希望这对你们有帮助

从这里

<nul set /p =Testing testing

同时也从空间的使用开始呼应

echo.Message goes here

回显带有空格且没有换行符

如Pedro之前所述,没有新行和前面有空格的echo有效(假设“9”是一个真正的[BackSpace])。

<nul set /p=.9    Hello everyone

我在Windows 10的新主机上遇到了一些问题,但我还是通过以下方式解决了问题。 在CMD中输入:

echo .◘>bs.txt

我按[Alt] +[8]键实现了“▲” (实际符号可能因代码页而异)。

然后使用Notepad.exe将结果从“bs.txt”复制到需要的地方就很容易了。

@echo off
<nul set /p "_s=.◘    Hello everyone"
echo: here

使用set和/p参数可以不带换行符进行回显:

C:\> echo Hello World
Hello World

C:\> echo|set /p="Hello World"
Hello World
C:\>

jscript:

@if (@X)==(@Y) @end /*
    @cscript //E:JScript //nologo "%~nx0" %*
    @exit /b %errorlevel%
*/if(WScript.Arguments.Count()>0) WScript.StdOut.Write(WScript.Arguments.Item(0));

如果它叫write.bat,你可以这样测试它:

call write.bat string & echo _Another_String_

如果你想使用powershell,但有cmd定义的变量,你可以使用:

set str=_My_StrinG_
powershell "Write-Host -NoNewline ""%str%""""  & echo #Another#STRING#