我希望我的.bat脚本在控制台中执行以下操作:
C:\Users\username>somescript.bat
Doing something in: 3
一秒钟后......
C:\Users\username>somescript.bat
Doing something in: 2
我该怎么做?另外,我不想清除控制台,只在窗口上改变一件事。
答案 0 :(得分: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(
第一部分只是为CR
变量设置一个回车符。
<nul set /p =Text
是显示没有换行符的文本的技巧,因此光标位于最后一个字符之后。
但是在这种情况下,我附加了!CR!
,因此光标移回到同一行的第一列。
答案 1 :(得分:1)
批量不能这样做。 Windows cmd无法直接访问显示。你应该使用另一种编程语言,例如。 C#。