Problema con símbolos ( \, ", etc) almacenados en variable

Iniciado por <ИΘZIЭ(ŦB>, 26 Agosto 2009, 01:22 AM

0 Miembros y 1 Visitante están viendo este tema.

<ИΘZIЭ(ŦB>

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

If %variable% == 123

o también

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.

leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

<ИΘZIЭ(ŦB>

#2
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?

leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

<ИΘZIЭ(ŦB>


leogtz

No, hace meses que no uso Windows.
Deja veo que puede ser.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

leogtz

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
)
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

<ИΘZIЭ(ŦB>

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

<ИΘZIЭ(ŦB>

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

leogtz

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.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com