2013-06-21 2 views
0

Вот мой код (я пытался сделать индикатор выполнения, но не смог).Операция с переменной переменной строки не работает

@echo off & setlocal enabledelayedexpansion 
set bar=********** 
set cnt=0 
:LOOP 
cls 
set /A cnt+=1 
echo.Progress:!bar:~0,%cnt%! 
ping -n 1 www.google.com > nul 2>&1 
if "%cnt%" NEQ 10 goto :LOOP 
echo.finished. 
pause > nul 
exit /b 

Я получаю это как выход: бара: ~ 0,1 бара: ~ 0,2 бара: ~ 0,3 и т.д .. и т.д .. Я хочу, чтобы это так: *, **, *** и т.д .. в основном увеличивают звездочку на 1 каждую секунду.

ответ

1

попробовать это:

@echo off & setlocal enabledelayedexpansion 
set "bar=**********" 
set /a cnt=0 
:LOOP 
cls 
set /A cnt+=1 
SET "progressbar=!bar:~0,%cnt%!" 
ECHO(Progress:%progressbar% 
ping -n 1 www.google.com > nul 2>&1 
if %cnt% NEQ 10 goto :LOOP 
ECHO(finished. 

REM example without CLS 
<NUL set/p "=Progress:" 
:LOOPING 
<NUL set/p"=*" 
ping -n 1 www.google.com > nul 2>&1 
SET /a count+=1 
if %count% NEQ 10 goto :LOOPING 
ECHO(&ECHO(finished. 
Смежные вопросы