【发布时间】:2015-08-02 10:56:44
【问题描述】:
如果我使用<nul set/p= some text 或set/p "= some text"<nul,即使我在0xFF 代码中使用字符,前面的空格也会被删除。如何在没有尾随 CR/LF 的情况下在行首回显指定数量的空格?
【问题讨论】:
-
目标也是脚本的速度。
标签: windows batch-file newline
如果我使用<nul set/p= some text 或set/p "= some text"<nul,即使我在0xFF 代码中使用字符,前面的空格也会被删除。如何在没有尾随 CR/LF 的情况下在行首回显指定数量的空格?
【问题讨论】:
标签: windows batch-file newline
在行首添加退格符效果很好。
@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
【讨论】:
for 看起来过分了。
for 产生空输出吗?
for 命令生成空输出(涉及命令提示符),或者也可以使用其他一些具有类似效果的命令?”。跨度>
a) 如果文本在新行中回显,则只需在输出文本前添加退格字符即可。<nul set/p=[BS char here directly, without brackets] some text
在 ANSI 和 ASCII 代码表中,它的代码为 0x08。
b) 如果文本需要作为已经存在的行的延续,则在 BS 字符之前额外添加一个非空格字符,例如“中间点”(0xFA)。<nul set/p=[MD char (0xFA), then BS char (0x08)] some text
在 WinXP 和 Win7 中运行良好。
【讨论】: