如何在命令提示符下更改控制台中的字符?

Eth*_*han 3 cmd batch-file

我希望我的.bat脚本在控制台中执行以下操作:

C:\Users\username>somescript.bat
Doing something in: 3
Run Code Online (Sandbox Code Playgroud)

一秒钟之后......

C:\Users\username>somescript.bat
Doing something in: 2
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?另外,我不想清除控制台,只改变窗口上的一件事.

jeb*_*jeb 5

您可以批量执行此操作.Windows cmd无法直接访问显示,但您可以使用回车符或退格符.

@echo off
setlocal EnableDelayedExpansion

REM ** Create a single carriage return character in the `CR` variable
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"

REM ** Count from 3 to 0 down
REM ** ECHO for each number the line without linefeed
REM ** And wait a second with the ping command
for /L %%n in (3 -1 0) do (
  <nul set /p=Do something %%n!CR!
  ping localhost -n 2 > nul
)
echo(
Run Code Online (Sandbox Code Playgroud)

第一部分只是为CR变量设置回车符.

<nul set /p =Text是一个显示没有换行符的文本的技巧,因此光标位于最后一个字符之后.
但是在这种情况下我附加了!CR!,所以光标移回到同一行的第一列.