
04/01/2008, 13:52
|
 | | | Fecha de Ingreso: enero-2006 Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 19 años, 1 mes Puntos: 19 | |
Re: Programacion BAT Mirate este hilo: http://www.lawebdelprogramador.com/n...n8=0&n9=0&n0=0
Tiene que ver con "La expansión de variables de entorno retardada" del DOS
A ver si te ilumina. Cita: Según lo que postié en el primer mensaje, puse que con el modificador /v se soluciona este problema, el cual no me funcionó inicialmente. Pero si funciona, solo que había que seguir leyendo el documento. :P
El funcionamiento de este "patch" es así:
1) Abres o ejecutas el CMD así...
cmd /v: on
2) Se abrirá un aventana de Intérprete de Comandos pero con la opción /V actibada. Pero para usar esta nueva característica, uno debe usar un símbolo distinto al % para llamar a las variables declaradas, entonces se hace así:
@echo off
set bool=true
echo !bool!
pause
if "!bool!" == "true" (
set bool=false
echo !bool!
pause
)
==========SALIDA==========
true
Presione una tecla para continuar . . .
false
Presione una tecla para continuar . . .
========FIN SALIDA=========
A diferencia de antes, que las variables se llamaban con los signos %, lo cual porducía que el valor de la variable a la que se llama no cambie y siga con el valor inicial...
@echo off
set bool=true
echo %bool%
pause
if "%bool%" == "true" (
set bool=false
echo %bool%
pause
)
==========SALIDA==========
true
Presione una tecla para continuar . . .
true
Presione una tecla para continuar . . .
========FIN SALIDA=========
Como verán, el problema de la modificación de las variables (o declaración en tiempo de ejecución) fue solucionado.
Esta información la obtuve desde el mismo comando set /? A este problema Microsoft le llama "Expansión de variable inmediata". Y a la solución o mejora de Microsoft es llamada "Expansión de variable retardada". salu2 |