[Batch] Problema con las variables [Solucionado]

Iniciado por DA KILLER, 15 Mayo 2010, 15:46 PM

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

leogtz

Son tipos de variables que pueden ser usadas de esta manera:

%~d0

Donde "0" hace referencia al mismo archivo batch.

La letra d, hace referencia al disco (drive)

Si yo hiciera esto:

%~dp1

Estaría haciendo referencia a la variable %1 posicional, más (drive) y el path o la ruta.

Aquí tienes más información:

http://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html
Código (perl) [Seleccionar]

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

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

xassiz_




YXVuIGVyZXMgbWF0YWRvIHBhcmEgcG9uZXJ0ZSBhIGRlc2NpZnJhciBlc3RvIHhE

DA KILLER

OK el filtro de xassiz me ayudo con los caracteres reservados, pero sigue sin tomarme el if not defined, apenas lo solucione lo posteo completo y corregido.
.: DA KILLER :.



flony

#13
tenes razon las variables se ingresan == y no = y tal vez por ahi el declarar las variables se te complique en set/p var=Escriba TEST:
y test no sea una variable
si un problema no tiene solucion entonces no es un problema...es algo inevitable

xassiz_

Cita de: DA KILLER en 17 Mayo 2010, 00:38 AM
, pero sigue sin tomarme el if not defined

La estructura de if not defined es "if not defined variable"

set variable=hola
if not defined %variable% (echo:Variable no definida)


Así estás haciendo tú, el cmd lo interpreta así:

set variable=hola
if not defined hola (echo:Variable no definida)


A que me refiero? Que no la tienes que expandir:

set variable=hola
if not defined variable (echo:Variable no definida)



YXVuIGVyZXMgbWF0YWRvIHBhcmEgcG9uZXJ0ZSBhIGRlc2NpZnJhciBlc3RvIHhE

flony

#15
[code@echo off
title EJEMPLO VARIANTES
:menu
echo escriba TEST
set/p var=TEST:
if %var%==TEST (goto Ok) else (goto wrong)
if %var% not defined goto error

:error
echo Ud. no inserto texto alguno, por favor escriba TEST.
pause >nul
cls
goto menu

:wrong
echo ERROR UD. NO INSERTO TEST, por favor vuelva a intentarlo.
pause >nul
cls
goto menu

:Ok
echo OK, todo en orden.
pause >nul
cls
exit


ahi ta funciona eso era lo q te decia, eso si funciona con mayusculael TEST si queres ponelo en minuscula pones lo q sea y no funciona solo TEST
si un problema no tiene solucion entonces no es un problema...es algo inevitable

DA KILLER

No, lo que pasa es que al emplear el filtro de xassiz se pre-define la variable a tratar para el "filtrado" pero es una bolud** arreglarlo, ahora busco el code y la rta.

El code es:

set "test="&set/p "test= Password: "
for %%a in ("^","&","<",">","|"," ",",") do (set "test=!pass:%%~a=^%%~a!")


Al hacer esto se "pre-define" la variable "test", pero si reemplazamos el 1er "test" por no se "ej" si funciona, EJ:

set "ej="&set/p "test=Ingrese KILLER: "
for %%a in ("^","&","<",">","|"," ",",") do (set "ej=!test:%%~a=^%%~a!")


Saludos y gracias.

PD: Perdón por no conectarme antes, pero tengo un troyano dando vueltas que me tiene como loco :P
.: DA KILLER :.



DA KILLER

Bueno, queda solucionado el tema al menos que alguien no entienda algo más.
.: DA KILLER :.