环境变量
每个进程都有一个环境块,其中包含一组环境变量及其值。 有两种类型的环境变量: (为每个用户) 设置用户环境变量, (为每个人) 设置系统环境变量。
默认情况下,子进程继承其父进程的环境变量。 命令处理器启动的程序继承命令处理器的环境变量。 若要为子进程指定不同的环境,请创建新的环境块,并将指向它的指针作为参数传递给 CreateProcess 函数。
命令处理器提供 set 命令来显示其环境块或创建新的环境变量。 还可以通过以下方式查看或修改环境变量:从控制面板中选择“系统”,选择“高级系统设置”,然后单击“环境变量”。
每个环境块包含以下格式的环境变量:
-
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 函数。
相关主题