Ms-Dos - Al introducir un texto que me diga si es demasiado corto, largo o incorrecto

 
Vista:
sin imagen de perfil

Al introducir un texto que me diga si es demasiado corto, largo o incorrecto

Publicado por Isdera (9 intervenciones) el 21/06/2013 13:00:26
Hola,

Tengo hecho un programilla en batch, para enviar ordenes a unos equipos.

Le pido al usuario que introduzca el nombre del equipo, pero introduzca lo que introduzca, la acción se ejecuta.

Lo que quiero es que me limite lo que el usuario puede introducir.

El texto debe ser de 9 letras, si introduzco mas o menos letras, me dice que el texto es incorrecto.
El texto debe empezar por B459X3 siempre

Hay manera de hacer esto?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de A.H.H

Al introducir un texto que me diga si es demasiado corto, largo o incorrecto

Publicado por A.H.H (216 intervenciones) el 22/06/2013 13:13:56
Hola prueba esto:

En este ejemplo en un .bat, primero te pide que introduzcas nombre de equipo, después hace unas comprobaciones, la primera comprobación es si los 6 primeros caracteres no coinciden con la cadena
B459X3 entonces salimos.

La segunda comprobación cuenta el numero de caracteres introducidos y los muestra en pantalla.

la tercera comprobación es teniendo dentro de la variable %LARGO% el numero de caracteres de la cadena introducida, comprueba si es mayor de 9 caracteres.

la cuarta comprobación comprueba si %LARGO% es menor de 9 caracteres.

Después de todas estas comprobaciones podrias poner tu código de lo que quieres que haga al estar todo correcto.


espero te sirva saludos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off
:INICIO
CLS
setlocal
SET /P NOMBRE=INTRODUCE NOMBRE EQUIPO:
set /A LARGO=0
SET DATOS=%NOMBRE%
set COMPROBAR=B459X3
 
IF %DATOS:~0,6% NEQ %COMPROBAR% (ECHO NOMBRE EQUIPO NO EMPIEZA ASI SALIMOS!&PAUSE&EXIT)
 
:loop
if defined DATOS (set DATOS=%DATOS:~1%&set /A LARGO += 1&goto loop)
ECHO.
 
echo %NOMBRE% ES %LARGO% CARACTERES DE LARGO
 
IF %LARGO% GTR 9 (ECHO EL NOBRE INTRODUCIDO ES MAYOR DE 9 CARACTERES&PAUSE&GOTO :INICIO)
IF %LARGO% LSS 9 (ECHO EL NOBRE INTRODUCIDO ES MENOR DE 9 CARACTERES&PAUSE&GOTO :INICIO)
 
ECHO A PARTIR DE AQUI VENDRIA EL CODIGO PARA CUANDO TODO ESTA CORRECTO
endlocal
PAUSE



NOTA: LA CADENA INTRODUCIDA EN NOMBRE EQUIPO NO PUEDE LLEVAR ESPACIOS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Al introducir un texto que me diga si es demasiado corto, largo o incorrecto

Publicado por Isdera (9 intervenciones) el 26/06/2013 11:30:13
Muchas gracias!

Funciona muy bien.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Al introducir un texto que me diga si es demasiado corto, largo o incorrecto

Publicado por Isdera (9 intervenciones) el 28/06/2013 09:53:06
Hola de nuevo,

Se podría hacer de alguna manera que el texto pueda ser mayúsculas o minúsculas?

Me he dado cuenta de que si pongo el nombre en minusculas no funciona. b459x3

Muchas graciass.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

Al introducir un texto que me diga si es demasiado corto, largo o incorrecto

Publicado por A.H.H (216 intervenciones) el 30/06/2013 16:30:44
Hola ponle al IF el modificador /I para que no distinga mayus. o minus.

quedaría asi esa línea:

1
IF /I %DATOS:~0,6% NEQ %COMPROBAR% (ECHO NOMBRE EQUIPO NO EMPIEZA ASI SALIMOS!&PAUSE&EXIT)


salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Al introducir un texto que me diga si es demasiado corto, largo o incorrecto

Publicado por Isdera (9 intervenciones) el 03/07/2013 08:18:27
Perfecto de nuevo!

Muchisimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar