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

echo text with preceding spaces but without new line

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

在行首添加退格字符效果很好。

@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

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