环境变量
每个进程都有一个环境块,其中包含一组环境变量及其值。 有两种类型的环境变量:用户环境变量(针对每个用户设置)和系统环境变量(针对每个人设置)。
默认情况下,子进程继承其父进程的环境变量。 由命令处理器启动的程序继承命令处理器的环境变量。 若要为子进程指定不同的环境,请创建新的环境块,并将指向它的指针作为参数传递给 CreateProcess 函数。
命令处理器提供 集 命令来显示其环境块或创建新的环境变量。 还可以从 控制面板中选择 系统,选择 高级系统设置,然后单击 环境变量来查看或修改环境变量。
每个环境块包含以下格式的环境变量:
-
Var1=Value1\0
Var2=Value2\0
Var3=Value3\0
...
VarN=ValueN\0\0
环境变量的名称不能包含等号(=)。
GetEnvironmentStrings 函数返回指向调用进程的环境块的指针。 这应被视为只读块;请勿直接修改它。 请改用 SetEnvironmentVariable 函数更改环境变量。 完成从 getEnvironmentStrings获取的环境块后,调用 FreeEnvironmentStrings 函数释放该块。
调用 SetEnvironmentVariable 不会影响系统环境变量。 若要以编程方式添加或修改系统环境变量,请将其添加到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment 注册表项,然后广播 lParam 设置为字符串“Environment”的 WM_SETTINGCHANGE 消息。 这样,应用程序(如 shell)就可以选取更新。
用户定义的环境变量的最大大小为 32,767 个字符。 环境块的大小没有技术限制。 但是,根据用于访问块的机制,存在实际限制。 例如,批处理文件无法设置长度超过最大命令行长度的变量。
Windows Server 2003 和 Windows XP: 进程环境块的最大大小为 32,767 个字符。 从 Windows Vista 和 Windows Server 2008 开始,环境块的大小没有技术限制。
GetEnvironmentVariable 函数确定指定变量是否在调用进程的环境中定义,如果是,则确定其值是什么。
若要检索给定用户的环境块的副本,请使用 CreateEnvironmentBlock 函数。
若要扩展环境变量字符串,请使用 ExpandEnvironmentStrings 函数。
相关主题