Ms-Dos - **PATCH** DOS >>>cmd.exe<<< Decl

 
Vista:

**PATCH** DOS >>>cmd.exe<<< Decl

Publicado por Alfredo San Martín (8 intervenciones) el 28/02/2007 16:29:43
Muchos dolores de cabeza nos produce DOS de Windows cuando intentamos cambiar el valor de nuestras variables en tiempo de ejecución.

Pero Microsoft ha integrado una especie de "PATCH" al cmd.exe de nuestro S.O.

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 activada. 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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:**PATCH** DOS >>>cmd.exe<<< D

Publicado por Geergon (2 intervenciones) el 11/03/2007 05:52:00
Muy interesante!!!

En realidad el cmd.exe tiene ventajas sobre el antiguo command....
Debo decir que algunas cosas en modo consola funcionan mucho mejor....

Si claro!, algunas de la sintaxis del lenguaje a sido ampliada, pero si aun asignas las variables del modo antiguo no abra problema.

@echo off

set bool=true
echo %bool%
pause
if not %bool%==true goto end
set bool=false
echo %bool%
pause
:end
cls

Gracias por tu tiempo!
Atentamente: Geergon.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:**PATCH** DOS >>>cmd.exe<<< D

Publicado por Andres (1 intervención) el 21/07/2007 21:16:21
donde consigo ese patch es ke stas cosa me sta dando lata ayuda pliss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar