回显带有前面空格但没有换行的文本

时间:2015-08-02 10:56:44

标签: windows batch-file newline

如果我使用<nul set/p= some textset/p "= some text"<nul,则会删除前面的空格,即使我使用带有0xFF代码的字符也是如此。如何在没有尾随CR / LF的行的开头回显指定数量的空格?

2 个答案:

答案 0 :(得分:2)

在行的开头添加退格符很有效。

@echo off
:: define BS as a BackSpace character
for /f %%A in ('"prompt $H&for %%B in (1) do rem"') do set "BS=%%A"
set /p "=%bs%     some text"<nul
pause

答案 1 :(得分:0)

a)如果文本在新行上回显,则只需在输出文本前添加退格字符。
<nul set/p=[BS char here directly, without brackets] some text
在ANSI和ASCII代码表中,它具有代码0x08 b)如果需要将文本作为已存在行的延续放置,则在BS char之前另外添加一个非空格char,例如“Middle Dot”(0xFA)。
<nul set/p=[MD char (0xFA), then BS char (0x08)] some text
在WinXP和Win7中正常工作。