Autor
|
Tema: Problema con símbolos ( \, ", etc) almacenados en variable (Leído 34,801 veces)
|
<ИΘZIЭ(ŦB>
Desconectado
Mensajes: 109
-cyman-
|
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 o también 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
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Trata así: if ["%variable%"]==["valor"] ...
|
|
|
En línea
|
|
|
|
<ИΘZIЭ(ŦB>
Desconectado
Mensajes: 109
-cyman-
|
No funciona. Mira: 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 am por cyman »
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Quitale el endlocal.
|
|
|
En línea
|
|
|
|
<ИΘZIЭ(ŦB>
Desconectado
Mensajes: 109
-cyman-
|
Amigo, sigue sin funcionar. ¿Ya lo probaste?
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
No, hace meses que no uso Windows. Deja veo que puede ser.
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Dejalo así, a ver como te va: 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
|
|
|
|
<ИΘZIЭ(ŦB>
Desconectado
Mensajes: 109
-cyman-
|
Nada pana! Lo copié y pegué y sigue tomando la segunda opción. No entiendo.
|
|
|
En línea
|
|
|
|
<ИΘZIЭ(ŦB>
Desconectado
Mensajes: 109
-cyman-
|
Bueno pana, si quieres pruebas después y me dices. Gracias por todo.
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
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
|
|
|
|
|
|