Hola amigos necesito ayuda, tengo un bat que pide ingresar hora, como puedo validar que lo que se ingrese sea en este formato hh:mm, tengo lo siguiente pero no me funciona, ya que siempre dice que es la hora es erronea.
set /p hor=Indique hora hh:mm :
echo ##########################
set hora=!hor:~0,2!
set min=!hor:~3,2!
if defined hor (set "hor=!hor:.=!")
echo.!hor!|findstr.exe /r /i "\<[0-23]*\-[0-59]\>">nul 2>&1
if errorlevel 1 (
echo hora erronea
pause
goto 1) else (
echo la hora es !hor!
echo los minutos son !min!)
Supongamos que estás usando ya:
setlocal enabledelayedexpansion
para !!.
Y para asegurarte usa los %% en los errorlevels.
La línea del los set podrías ahorrartela así:
@echo off
:code
set /p "hor=Hora : "
if not defined hor (goto:code)
for /f "tokens=1,2 delims=:" %%a in ("%hor%") do (set "hora=%%a" & set "min=%%b")
Comprueba que tu expresión regular esté correcta.