Validar ingreso en bat

Iniciado por dj kuzmar, 2 Febrero 2010, 21:42 PM

0 Miembros y 1 Visitante están viendo este tema.

dj kuzmar

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!)



 

leogtz

#1
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.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com