batch-fil - windows echo for at overskrive tidligere ekko

Indlæg af Hanne Mølgaard Plasc

Problem



I en batchfil vil jeg skrive en 'tæller' til skærmen uden at rulle ting ud af skærmen. jeg har


FOR /L \%\%i IN (1,1,1000) DO (
< NUL set /P="Count= \%\%i"
)


{Der er ingen plads mellem < LT> NUL, men dette stopper linjen fra at vise i spørgsmålet.}


Denne kommando tilføjer ikke en LF eller CR, men jeg vil have en CR, bare ingen LF.


Slutresultatet skal være


Count= X


hvor X er 'tæller' fra 1 til 1.000.

Bedste reference


@echo off
setlocal EnableDelayedExpansion

rem Get a Carriage Return (Ascii 13) in CR variable:
for /F \%\%a in ('copy /Z "\%~F0" NUL') do set "CR=\%\%a"

FOR /L \%\%i IN (1,1,1000) DO ( < NUL set /P "=Count= \%\%i!CR!" )

Andre referencer 1


@echo off
setlocal EnableDelayedExpansion
set cnt=0
for /F \%\%a in ('copy /Z "\%~F0" NUL') do set "CR=\%\%a"


FOR /L \%\%a IN (1,1,5) DO ( 
 call :cnt
 timeout /t 1 >nul
 < NUL set /P "=!er!!CR!"
 )
echo.
pause
exit 
:cnt
set /a cnt=!cnt!+1
if \%cnt\% == 1 set er=Hello!                             
if \%cnt\% == 2 set er=I am Soubhik Biswas                                 
if \%cnt\% == 3 set er=My Roll Is 40                          
if \%cnt\% == 4 set er=Is Study In Class VIII-C       
goto :eof