elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema al comparar variable de valor string con letra SOLUCIONADO
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al comparar variable de valor string con letra SOLUCIONADO  (Leído 5,691 veces)
<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Problema al comparar variable de valor string con letra SOLUCIONADO
« en: 21 Agosto 2009, 07:18 am »

Qué tal estimados foristas? Reciban de nuevo mi saludo.

Resulta que llevo varias horas dándome golpes con otro asunto, pero nada que le hallo solución, aunque supongo que es fácil.

Esta vez se trata de comparar el valor de una variable (el valor es una letra) con una letra específica. Debería ser sencillo, pero resulta que no funciona igual que con números. Bueno, al menos a mí no me funciona.

El problema se me presenta así:

Código:
set var=A
Código:
If %var%==A goto X...

Así de simple es. Ya he verificado el valor de %var% y está bien, pero el problema es que no se ejecuta el comando que le asigno al cumplirse la condición (goto X). Así pues, supongo que lo que está mal es la manera en que evalúo el valor de %var% (%var%==A).

¿Me podrían ayudar en eso? ¿Qué estoy haciendo mal?

Nota del MOD:
Los códigos con sus respectivas etiquetas.


« Última modificación: 23 Agosto 2009, 07:10 am por cyman » En línea

Ari Slash


Desconectado Desconectado

Mensajes: 1.783



Ver Perfil WWW
Re: Problema al comparar variable de valor string con letra
« Respuesta #1 en: 21 Agosto 2009, 07:26 am »

hola...prueba esto:

Código:
If %var% == A (goto:dondesea)

Código:
If %var% == A (
    goto:aqui
    ) else (
    goto:aca
    )


salu2

edito:Prueba de nuevo, que me quedo un espacio de mas


« Última modificación: 21 Agosto 2009, 07:35 am por Ari-Slash » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Problema al comparar variable de valor string con letra
« Respuesta #2 en: 21 Agosto 2009, 07:55 am »

Código:
set "var=A"
if "%var"=="A" (
goto:si
) else (
goto:no
)
En caso de que quieras una comprobación "case insensitive":
Código:
if /i "%var"=="A" (
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: Problema al comparar variable de valor string con letra
« Respuesta #3 en: 23 Agosto 2009, 00:23 am »

Amigos de foro, agradezco como siempre sus respuestas. Tenían razón como de costumbre. Noté que mi error no estaba en cómo planteaba la condición (If %variable% == A) sino en que estaba juntando dos condiciones en la misma línea. Les explico.

En mi código dejo que el usuario sea quien determine el valor de la variable usando el comando:

Código:
set /p variable=A o B?:

Entonces, suponiendo que el usuario colocara una "a" o "b" minúscula, planteaba la siguiente validación:

Código:
If %variable% == a If %variable% == A goto X

Pues bien, era justo eso lo que me daba error. No se pueden concatenar dos condiciones If X == X, aunque no sé por qué, ya que si las condiciones son If X NEQ X si puedo juntar todas las que quiera, pues tengo otra línea así.

De modo que ahora quisiera saber cómo hacer para juntar varias condiciones If ==, pues supongo que hay una manera.
Otra cosa, leí hace poco que las elecciones de letras (como S/N) se validan de otro modo, creo que con un comando. Si pueden ayudarme con esto se los agradezco muchachos.
« Última modificación: 23 Agosto 2009, 01:42 am por Leo Gutierrez. » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Problema al comparar variable de valor string con letra
« Respuesta #4 en: 23 Agosto 2009, 01:47 am »

No te desgastes haciendo eso.

Usa el parametro /i (Ignore), para casos insensitivos.

Código:
if /i "%variable%"=="Hola" (
Accion...
)

En otro caso, podrías concatenar varios IF así:
Código:
if %variable%==ALGO (
if %variable%==Si (
accion
)
)
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines