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


 


Tema destacado: ¿Usas Skype? Protégete de los Skype Resolver


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderador: Eleкtro)
| | |-+  Problema con símbolos ( \, ", etc) almacenados en variable
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema con símbolos ( \, ", etc) almacenados en variable  (Leído 24,872 veces)
<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Problema con símbolos ( \, ", etc) almacenados en variable
« en: 26 Agosto 2009, 01:22 »

Hola a todos otra vez.

Amigos, tengo este problema: necesito saber si una de mis variables tiene un símbolo como valor almacenado, pero no sé cómo inquirirlo. Cuando se trata de una letra, texto normal o números, basta con escribir

Código:
If %variable% == 123

o también

Código:
If %variable% == texto

etc. Pero cuando intento hacer lo mismo con un símbolo (ya me ha pasado con el slash [/] y la comilla ["]) no funciona, supongo que porque son caracteres especiales dentro del BATCH.

Así pues, mi pregunta es: ¿cómo se deben escribir esas sentencias dentro del IF?
Por favor, agradezco su ayuda.


En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Problema con símbolos ( \, ", etc) almacenados en variable
« Respuesta #1 en: 26 Agosto 2009, 03:45 »

Trata así:
Código:
if ["%variable%"]==["valor"] ...


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 con símbolos ( \, ", etc) almacenados en variable
« Respuesta #2 en: 26 Agosto 2009, 05:09 »

No funciona. Mira:

Código:
set /p ruta=Escriba la ruta:
set cont=0
goto Contar

:Contar
setlocal enabledelayedexpansion
if "!ruta:~%cont%,1!" neq "" set /a "cont+=1" & set uc="!ruta:~%cont%,1!" & goto Contar
endlocal
goto AoC

:AoC
If ["%uc%"]==["\"] (
    echo Es slash
    pause
)
If ["%uc%"] neq ["\"] (
    echo No es slash, es %uc%
    pause
)

Eso es lo que tengo. No funciona porque aunque el último caracter es \ (almacenado en %uc%) sólo entra en el segundo If, como si no lo fuera.

 ¿Qué hice mal?
« Última modificación: 26 Agosto 2009, 05:18 por cyman » En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Problema con símbolos ( \, ", etc) almacenados en variable
« Respuesta #3 en: 26 Agosto 2009, 05:18 »

Quitale el endlocal.
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 con símbolos ( \, ", etc) almacenados en variable
« Respuesta #4 en: 26 Agosto 2009, 05:27 »

Amigo, sigue sin funcionar. ¿Ya lo probaste?
En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Problema con símbolos ( \, ", etc) almacenados en variable
« Respuesta #5 en: 26 Agosto 2009, 05:28 »

No, hace meses que no uso Windows.
Deja veo que puede ser.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Problema con símbolos ( \, ", etc) almacenados en variable
« Respuesta #6 en: 26 Agosto 2009, 05:30 »

Dejalo así, a ver como te va:
Código:
setlocal enabledelayedexpansion
set /p ruta=Escriba la ruta:
set cont=0
goto Contar

:Contar
if "!ruta:~%cont%,1!" neq "" (
set /a "cont+=1"
set uc="!ruta:~%cont%,1!"
goto:Contar
)
goto AoC

:AoC
If ["%uc%"]==["\"] (
    echo Es slash
    pause
)
If ["%uc%"] neq ["\"] (
    echo No es slash, es %uc%
    pause
)
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 con símbolos ( \, ", etc) almacenados en variable
« Respuesta #7 en: 26 Agosto 2009, 05:40 »

Nada pana! Lo copié y pegué y sigue tomando la segunda opción. No entiendo.
En línea

<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: Problema con símbolos ( \, ", etc) almacenados en variable
« Respuesta #8 en: 26 Agosto 2009, 05:52 »

Bueno pana, si quieres pruebas después y me dices. Gracias por todo.
En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Problema con símbolos ( \, ", etc) almacenados en variable
« Respuesta #9 en: 26 Agosto 2009, 05:58 »

Mañana checo con un Windows.

Describeme que es lo que quieres que haga el código y cual es la entrada de datos que le das.
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] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines