Share via


Variables de entorno

Cada proceso tiene un bloque de entorno que contiene un conjunto de variables de entorno y sus valores. Hay dos tipos de variables de entorno: variables de entorno de usuario (establecidas para cada usuario) y variables de entorno del sistema (establecidas para todos).

De forma predeterminada, un proceso secundario hereda las variables de entorno de su proceso primario. Los programas iniciados por el procesador de comandos heredan las variables de entorno del procesador de comandos. Para especificar un entorno diferente para un proceso secundario, cree un nuevo bloque de entorno y pase un puntero a él como parámetro a la función CreateProcess .

El procesador de comandos proporciona el comando set para mostrar su bloque de entorno o para crear nuevas variables de entorno. También puede ver o modificar las variables de entorno seleccionando Sistema en el Panel de control, seleccionando Configuración avanzada del sistema y haciendo clic en Variables de entorno.

Cada bloque de entorno contiene las variables de entorno con el formato siguiente:

Var1=Valor1\0
Var2=Valor2\0
Var3=Valor3\0
...
Varn=ValueN\0\0

El nombre de una variable de entorno no puede incluir un signo igual (=).

La función GetEnvironmentStrings devuelve un puntero al bloque de entorno del proceso de llamada. Esto debe tratarse como un bloque de solo lectura; no lo modifique directamente. En su lugar, use la función SetEnvironmentVariable para cambiar una variable de entorno. Cuando haya terminado con el bloque de entorno obtenido de GetEnvironmentStrings, llame a la función FreeEnvironmentStrings para liberar el bloque.

Llamar a SetEnvironmentVariable no tiene ningún efecto en las variables de entorno del sistema. Para agregar o modificar mediante programación variables de entorno del sistema, agréguelas a la clave del Registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment y, a continuación, difunda un mensaje de WM_SETTINGCHANGE con lParam establecido en la cadena "Environment". Esto permite que las aplicaciones, como el shell, recojan las actualizaciones.

El tamaño máximo de una variable de entorno definida por el usuario es de 32 767 caracteres. No hay ninguna limitación técnica en el tamaño del bloque de entorno. Sin embargo, existen límites prácticos en función del mecanismo utilizado para acceder al bloque. Por ejemplo, un archivo por lotes no puede establecer una variable mayor que la longitud máxima de la línea de comandos.

Windows Server 2003 y Windows XP: El tamaño máximo del bloque de entorno para el proceso es de 32 767 caracteres. A partir de Windows Vista y Windows Server 2008, no hay ninguna limitación técnica en el tamaño del bloque de entorno.

La función GetEnvironmentVariable determina si una variable especificada se define en el entorno del proceso de llamada y, si es así, cuál es su valor.

Para recuperar una copia del bloque de entorno para un usuario determinado, use la función CreateEnvironmentBlock .

Para expandir cadenas de variables de entorno, use la función ExpandEnvironmentStrings .

Cambio de variables de entorno

Variables de entorno de usuario