==========查看和修改=====================================================
1,我的电脑右键->系统属性->高级->环境变量,
这时环境变量显示两种:用户变量和系统变量
某一个环境变量的值等于用户变量和系统变量值的叠加,比如path
这里面的环境变量是不全的,只显示可以修改的环境变量,如%SystemRoot%就没有
2,cmd窗口中敲入set可看查看所有环境变量 
注:在dos窗口中以命令行方式对环境变量的操作只对当前窗口的应用有效
3,可更改环境变量在注册表中的位置
用户变量所在位置:HKEY_CURRENT_USER\Environment;
系统变量所在位置为:\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment。==========使用=====================================================
在批处理文件中,可以使用一个对百分号引用一个环境变量,如%SystemRoot%,不区分大小写
系统和应用软件常用的环境变量:如果路径中有空格,需要加""
%SystemDrive% & %HOMEDRIVE%
Windows系统所在磁盘分区,通常是C:
%SystemRoot% & %windir%
Windows系统所在的目录,通常是C:\Windows
%ProgramFiles%
Program Files的路径,通常是C:\Program Files。
%CommonProgramFiles%
环境变量path误删有影响吗指向公用文件(Common Files)目录,通常是C:\Program Files\Common Files。
%UserProfile% & %HomePath%
指向当前帐户的用户目录,通常是C:\Documents and Settings\当前用户名。
%AllUsersProfile%
指向所有用户的用户目录,通常是C:\Documents and Settings\All Users。
%AppData%
指向当前用户的Application Data目录,通常是C:\Documents and Settings\当前用户名\Application Data。%Temp% & %Tmp%
它指向的是当前用户的临时文件目录,通常是C:\Documents and Settings\当前用户名\Local Settings\Temp。%ComSpec%
指向C:\WINDOWS\,也就是命令提示符。
%ComputerName%
计算机名
%UserName%
用户名
%PROCESSOR_ARCHITECTURE%
处理器架构,通常是x86
%NUMBER_OF_PROCESSORS%
处理器数目,通常是2
%LogonServer%
已通过身份验证的计算机的名称,通常是\\计算机名
%OS%
操作系统核心,通常是Windows_NT
;VC添加
%path%系统运行程序时除了当前目录以外的搜索路径
%include% 编译器搜索.h等类型的文件的路径
==========环境变量延迟扩展=====================================================
关于环境变量延迟扩展,使用set /?可以查看到部分说明,不过考虑到其粗劣的翻译水平,建议在查看之前,首先chcp 437切换为英文查看原英文说明。鉴于文中已说得十分详尽,而且有数个代码示例,应该不难理解。在此仅略作一些补充。
在许多可见的官方文档中,均将使用一对百分号闭合环境变量以完成对其值的替换行为称之为“扩展(expansion )”,这其实是一个第一方的概念,是从命令解释器的角度进行称谓的,而从我们使用者的角度来看,则可以将它看作是引用(Reference)、调用(Call)或者获取(Get)。
而命令解释器是扩展环境变量的行为大致如下:首先读取命令行的一条完整语句,在进行一些先期的预处理之后,命令被解释执行之前,会对其中用百分号闭合的字符串进行匹配,如果在环境空间中到了与字符串相匹配的环境变量,则用其值替换掉原字符串及百分号本身,如果未得到匹配,则用一个空串替换,这个过程就是环境变量的“扩展”,它仍然属于命令行的预处理范畴。
而一条“完整的语句”,在NT的命令解释器CMD中被解释为“for if else”等含有语句块的语句和用“& | && ||”等连接起来的复合语句。
因此,当CMD读取for语句时,其后用一对圆扩号闭合的所有语句将一同读取,并完成必要的预处理工作,这其中就包括环境变量的扩展,所以在for中的所有语句执行之前,所有的环境变量都已经被替换为for之前所设定的值,从而成为一个字符串常量,而不再是变量。无论在for中将那些环境变量如何修改,真正受到影响的只是环境变量空间,而非for语句内部。
而为了能够在for语句内部感知环境变量的动态变化,CMD设计了延迟的环境变量扩展特性,也就是说,当CMD读取了一条完整的语句之后,它不会立即执行变量的扩展行为,而会在某个单条语句执行之前再进行扩展,也就是说,这个扩展行为被“延迟”了。
延迟环境变量扩展特性在CMD中缺省是关闭的,开启它的方法目前有两个:一是CMD /v:off(此处说法有误,应为 CMD /v:on——namejm 注),它会打开一个新的命令行外壳,在使用exit退出这个外壳之前,扩展特性始终有效,常用于命令行环境中;二是setlocal EnableDelayedExpansion,它会使环境变量的修改限制到局部空间中,在endlocal之后,扩展特性和之前对环境变量的修改将一同消失,常用于批处理语句中。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。