每个进程都有一个环境块,其中包含一组环境变量及其值。 有两种类型的环境变量:每个用户) 设置的用户环境变量 (, (为每个人) 设置的系统环境变量。
默认情况下,子进程继承其父进程的环境变量。 命令处理器启动的程序继承命令处理器的环境变量。 若要为子进程指定不同的环境,请创建新的环境块,并将指向它的指针作为参数传递给
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
函数。
更改环境变量
用户环境变量