Compartir a través de


Confidencial de Windows: Las variables ocultas

La incrustación de una variable de entorno dentro de otra es solo cosa del momento oportuno para la operación.

Raymond Chen

Hay un cuadro de diálogo ocultado dentro del Panel de Control llamado Variables de entorno. Para encontrarla, deberás ir al panel de control propiedades de sistema. Luego pararse en un pie, vaya a la ficha avanzada y haga clic en el botón Variables de entorno al recitar el alfabeto hacia atrás.

OK, tal vez un par de esas medidas no son realmente necesarias. Sin embargo, lo que está claro, es que no era la intención para que usuarios promedio poder encontrar fácilmente el cuadro de diálogo Variables de entorno, mucho menos comprender lo que hace.

Cuando el sistema crea un entorno para un nuevo usuario, consulte la configuración establecida en el cuadro de diálogo para determinar qué variables para colocar en el medio ambiente y con qué valores. El principio general es que si una variable de entorno se establece en las secciones del usuario y el sistema, entonces seguirá la definición del usuario.

En lugar de ignorar completamente la variable de sistema, sin embargo, el sistema puede utilizarlo para ayudar a definir la variable de usuario. A menudo, la gente quiere la variable de entorno de usuario se basa en la variable de entorno del sistema. Por ejemplo, quieren la ruta de acceso de usuario consisten en la ruta del sistema, además de algunos directorios adicionales.

Aquí es cómo funciona el proceso de creación de ambiente. Procede en aproximadamente cuatro pasos:

  • En primer lugar, el sistema crea algunas variables de entorno predefinidas de todo el equipo, como sistema de­raíz y todos­usuarios­perfil (pero no de equipo­nombre o programa­archivos).
  • En segundo lugar, crea las variables de entorno de la sección del cuadro de diálogo Variables de entorno de sistema. Las definiciones de variables de entorno de sistema pueden utilizar la notación de '%' para referirse a las variables de entorno predefinidas creadas en el paso anterior. Por ejemplo, puede establecer una variable de entorno de sistema a sistema de %­Drive%\Extras. Una vez finalizada el entorno del sistema, Windows comienza a construir el entorno de usuario.
  • Paso tres es crear predefinido por el usuario de variables de entorno, como usuario­perfil y APP­datos. El equipo­nombre y programa­las variables relacionadas con los archivos también se crean aquí, aunque técnicamente son las variables de sistema y no por usuario.
  • Por último, el sistema crea las variables de entorno. Estos se encuentran en la sección de usuario del cuadro de diálogo Variables de entorno y tener acceso a cualquier variable creada por los tres primeros pasos, por lo que se puede establecer una variable de entorno de usuario en usuario de %­PROFILE%\Extras o una variable de entorno de sistema personalizada establecido en el segundo paso. Si una variable de entorno de usuario tiene el mismo nombre que una variable de entorno del sistema, el nuevo valor reemplaza al viejo.

El reemplazo ocurre después de que el sistema calcula el nuevo valor, por lo que puede hacer cosas como tengan un ambiente de ruta de acceso de usuario definido como % PATH %;C:\Extras. La variable % PATH % se refiere a la versión del sistema de la variable. Ahora que ves lo que funciona, usted puede averiguar lo que no funciona. Es lo que no se describe en la sección anterior como trabajo.

Por ejemplo, puede utilizar en cualquier lugar % SystemRoot %. Puede utilizar cualquier variable de entorno del sistema para ayudar a definir una variable de entorno de usuario. Puede utilizar una variable de entorno predefinidas por el usuario para ayudar a definir una variable de entorno de usuario. Pero no puede utilizar una variable de entorno de usuario para ayudar a definir una variable de entorno del sistema. Tiempo de no ir hacia atrás.

Un cliente estaba teniendo dificultades para definir la variable de entorno de sistema PATH para % APPDATA %;C:\Windows. Encontraron el ambiente final sólo contenía la ruta literal como especificado (signos de porcentaje y todo), en lugar de reemplazarlo con el valor de la variable de entorno de APPDATA. Si se mira a través de la secuencia de las operaciones detalladas anteriormente, resulta claro por qué esto ocurrió. Estaban tratando de establecer una variable de entorno de sistema basada en una variable que todavía no se ha definido.

La solución fue simple: Mover la ruta desde el cuadro de lista de entorno de sistema en el cuadro de lista de entorno de usuario de edición. De esa manera, cuando quiso utilizar la variable de entorno % APPDATA %, la variable estaría allí.

El código que construye el entorno de usuario podría han intentado construir un gráfico de dependencias de lujo. Entonces podría haber añadido una sintaxis personalizada que permite definiciones de variables declarar si una aparición especial de % PATH % estaba prevista para referirse a la versión de sistema o de usuario de la variable PATH. Entonces podría han recopilado toda esa información, construida un gráfico de dependencias y cuidadosamente definidas las variables en una orden para que cada variable fue definida antes de sus dependientes. A continuación, tiene que decidir qué hacer si se detectó una referencia circular.

El objetivo del medio ambiente no es emular un motor de cálculo de la hoja de cálculo. Sólo quiere crear un bloque de medio ambiente de cierta información básica, y elegir reglas simples hace más fácil de explicar y entender todo el proceso. ¿Que es tan difícil de entender?

Raymond Chen

Raymond Chenidénticamente titulado libro (Addison-Wesley, 2007) y de sitio Web, la cosa nueva, ocuparse de la historia de Windows y la programación de Win32. No alimentar a los animales fuera de las áreas designadas.

Contenido relacionado