Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: dj kuzmar en 2 Febrero 2010, 21:42 PM

Título: Validar ingreso en bat
Publicado por: dj kuzmar en 2 Febrero 2010, 21:42 PM
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!)



 
Título: Re: Validar ingreso en bat
Publicado por: leogtz en 3 Febrero 2010, 01:03 AM
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.