Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по BATCH

Aksozon Ученик (171), закрыт 3 недели назад
Нужно чтобы шел 30тисекундный таймер, и была возможность написать переменную. Если переменная под конец таймера не будет введена, то запустится код x. Если будет введена, то код y. По нажатию энтера таймер остановится и запустится код y. Желательно вывести таймер в командную строку
Лучший ответ
Остальные ответы
Олег Князев Мастер (1936) 3 недели назад
BATCH-скрипт с 30-секундным таймером и переменной

К сожалению, в BATCH-скриптах невозможно реализовать полноценный таймер с выводом времени в командную строку. Однако, можно создать скрипт, который будет имитировать работу таймера, используя паузы и переменные.

Вот пример кода:
Фрагмент кода

@echo off

setlocal EnableDelayedExpansion

set /A "seconds=30"
set /A "counter=0"

:loop
echo.
echo Esperando... (%seconds% segundos restantes)
set /A "seconds-=1"
pause > nul

if %seconds% leq 0 (
echo.
echo Se acabó el tiempo!

if not defined variable (
echo No se ha introducido ninguna variable. Ejecutando código x...
goto code_x
) else (
echo Se ha introducido la variable: %variable%. Ejecutando código y...
goto code_y
)
)

goto loop

:code_x
echo.
echo Se ha ejecutado el código x.
pause
goto end

:code_y
echo.
echo Se ha ejecutado el código y.
pause
goto end

:end
endlocal
AksozonУченик (171) 3 недели назад
Нужна возможность ввести переменную в строку. И таймер просто не идет
Анонимус Мудрец (13493) 3 недели назад
 @echo off 

:start
cls
echo Таймер запущен...
setlocal enabledelayedexpansion
set /a counter=30
:countdown
if !counter! equ 0 goto endtimer
echo !counter! секунд осталось...
timeout /t 1 > nul
set /a counter-=1
goto countdown

:endtimer
if "%variable%"=="" goto runx
goto runy

:runx
echo Код x запущен...
:: Здесь ваш код x
pause
goto end

:runy
echo Код y запущен...
:: Здесь ваш код y
pause
goto end

:end
Алекс КухаВысший разум (449538) 3 недели назад
брел какой-то
Похожие вопросы