如何在与前一个回声相同的行上回显字符串?

时间:2017-03-31 18:32:40

标签: batch-file cmd

如何在批处理文件中使用两个echo命令回显“我有一个数字”?

echo "I have "
...
... do stuff
...
echo "1 number"

创建两行:

I have
1 number

如何抑制第一个回声的cr / lf?创建:

I have 1 number

2 个答案:

答案 0 :(得分:0)

这似乎是这样做的:

<nul set /p=I have 
echo 1 number

请注意,此示例过于简单 - 在更一般的情况下,第二部分不仅仅是回声,而是某些计算或操作的结果,例如cd:

<nul set /p=set currentdir=>a.bat
cd>>a.bat

我无法通过上面给出的PART1答案看到此功能。

答案 1 :(得分:0)

也许我错过了部分问题。将第一部分保存在变量中,然后在后面使用它。

SET "PART_1=I have "
.
... do stuff
.
ECHO %PART_1% 1 number

怎么样......

C:\Users\lit\t>ECHO SET "currentdir=%CD%" >a.bat

C:\Users\lit\t>type a.bat
SET "currentdir=C:\Users\lit\t"

多行...? ECHO命令在输出的任何内容的末尾写入换行符CRLF。您不会从第一个ECHO获取后续的ECHO命令来写入换行符。怎么样......

SET TMPFILE=%TEMP%\mytempfile.tmp
ECHO>"%TMPFILE%" I have
... do stuff
FOR /F "usebackq tokens=*" %%a IN (`TYPE "%TMPFILE%"`) DO (SET "S1=%%~a")
ECHO %S1% 1 file
IF EXIST "%TMPFILE%" (DEL "%TMPFILE%")