什么是与Linux shell命令echo -n
等同的Windows批处理命令,该命令会抑制输出末尾的换行符?
其思想是在循环内的同一行上编写代码。
发布于 2011-08-18 18:05:29
使用set
和/p
参数,无需换行符即可回显:
C:\> echo Hello World
Hello World
C:\> echo|set /p="Hello World"
Hello World
C:\>
发布于 2012-07-05 08:57:23
使用:echo | set /p=
或<NUL set /p=
都可以抑制换行符。
但是,当编写更高级的脚本时检查ERRORLEVEL变得非常重要,因为设置set /p=
而不指定变量名会将ERRORLEVEL设置为1,这可能是非常危险的。
一种更好的方法是使用一个虚拟变量名,如下所示:
echo | set /p dummyName=Hello World
这将准确地产生你想要的东西,而不会在后台发生任何偷偷摸摸的事情,因为我不得不艰难地找出,但这只适用于管道版本;<NUL set /p dummyName=Hello
仍然会将ERRORLEVEL提高到1。
发布于 2012-12-19 04:40:01
您可以使用"tr“从gnuwin32 (coreutils包)中删除换行符
@echo off
set L=First line
echo %L% | tr -d "\r\n"
echo Second line
pause
顺便说一句,如果你正在编写大量的脚本,gnuwin32就是一座金矿。
https://stackoverflow.com/questions/7105433
复制相似问题