windows环境变量

转自:http://www.dzwebs.net/2129.html

操作系统系统环境变量的设置

        ①环境变量的设置有几种方式?

  设置环境变量有两种方式:第一种是在命令提示符运行窗口中设置;第二种是通过单击“我的电脑→属性→高级”标签的“环境变量”按钮设置。需要注意的是,第一种设置环境变量的方式只对当前运行窗口有效,关闭运行窗口后,设置就不起作用了,而第二种设置环境变量的方式则是永久有效。

     ②如何在命令提示符窗口中设置环境变量?

  在“开始→运行”框中输入“cmd”后按“确定”按钮,出现命令运行窗口。在命令提示符下输入“set”即可查看环境变量设置。要查看具体某个环境变量的设置,比如要查看path环境变量的设置,可以输入“set path”。要创建一个环境变量,比如要创建一个名为aa的,值为“c:”的环境变量,可以输入“set aa=c:”命令。而要删除一个环境变量,比如要删除aa环境变量,则可输入“set aa=”命令(注意=后面不能有空格)。如何更改一个环境变量的设置呢?更改环境变量有两种情况:一是追加方式,即在不改变环境变量现有设置的情况下,增加变量的值,比如要给环境变量aa增加一个值为“D:”的设置,可以输入“set aa=%path%;D:”。另一种是完全修改方式,对于这种方式,我们可以采用直接创建一个环境变量的方法来实现。

  ③用户变量和系统变量的关系是什么?

  点击“我的电脑→属性→高级”标签的“环境变量”按钮,出现“环境变量”对话框,如果当前是以Administrator登录系统的用户,对话框的上面为Administrator的用户变量,对话框的下面为系统变量(即相当于系统中所有用户的用户变量)。有的时候我们会看到在用户变量和系统变量中都存在某一个环境变量,比如path,那么path的值到底是用户变量中的值还是系统变量中的值,或者两者都不是呢?答案是两者都不是。path变量的值是用户变量中的值与系统变量中的值的叠加。

  ④改变环境变量和环境变量中的值应该注意什么?

  环境变量和环境变量的值不要含有空格,也不要用中文。


转自:http://blog.sina.com.cn/s/blog_4b9eab320100up6q.html

windows环境变量系统变量与用户变量

      系统环境变量,对所有用户起作用,而用户环境变量只对当前用户起作用。

      例如你要用java,那么你把java的bin目录加入到path变量下面(添加方法),那么它就是系统环境变量,所有用户登陆,在命令行输入java都会有java的帮助信息出来。而如果你在某个用户的变量下面新建一个变量,那么它就只对这个用户有用,当你以其他用户登陆时这个变量就和不存在一样。 

      系统变量:与windows操作系统包括网络状况有关,由操作系统定义。Administrators组的用户可以添加添加、修改或删除。用户变量:由操作系统、某些应用程序以及用户建立,例如WindowsXP安装程序将临时文件夹设定了默认存储位置,并视为用户变量。任何用户都可以添加、修改或删除。

      这些变量由 Windows XP 安装程序、某些应用程序以及用户建立。这些更改将写入注册表,而且通常立即生效。不过,在更改用户环境变量之后,应该重新启动所有打开的软件程序以使其读取新的注册表值。

      添加、改变变量的常见原因是为您希望在程序(脚本)中使用的变量提供所需的数据。详见下文应用举例,环境变量的含义和值的示例:


******系统变量及说明  ******示例或注释
____________________  ____________________
%ALLUSERSPROFILE% : 所有用户Profile文件位置。  ALLUSERSPROFILE=C:\Documents and Settings\All Users
%APPDATA% : 应用程序数据的默认存放位置。  APPDATA=C:\Documents and Settings\Administrator\Application Data
�% : 当前目录。  
%CLIENTNAME% : 联接到终端服务会话时客户端的NETBIOS名。  CLIENTNAME=Console
%ClusterLog%:集群日志路径  ClusterLog=C:\WINDOWS\Cluster\cluster.log
%CMDCMDLINE% : 启动当前命令解释器程序路径及文件名。  %CMDCMDLINE% =C:\WINDOWS\system32\cmd.exe
%CMDEXTVERSION% : 当前命令处理程序扩展版本号。  ClusterLog=C:\WINDOWS\Cluster\cluster.log
%CommonProgramFiles% : 应用程序公用文件的路径  CommonProgramFiles=C:\Program Files\Common Files
%COMPUTERNAME% : 计算机名。  COMPUTERNAME=XSJ004
%COMSPEC% : 可执行命令外壳(命令处理程序,命令解释器)的路径。  ComSpec=C:\WINDOWS\system32\cmd.exe
�TE% : 当前日期(与DATE/t 命令同格式)  
%ERRORLEVEL% : 最近使用的命令的错误代码。  
%FP_NO_HOST_CHECK%:  FP_NO_HOST_CHECK=NO
____________________  ____________________
%HOMEDRIVE% : 用户主目录(本地工作站)所在的驱动器盘符。  HOMEDRIVE=C:
%HOMEPATH% : 用户主目录的完整路径。  HOMEPATH=\Documents and Settings\Administrator
%HOMESHARE% : 用户共享主目录的网络路径。  
***用户主目录是在“本地用户和组”中指定的  
____________________  ____________________
%LOGONSEVER% : 有效的当前登录会话的域名控制器名(登录的服务器)。  LOGONSERVER=\\OWEN
%NUMBER_OF_PROCESSORS% : 计算机安装的处理器数。  NUMBER_OF_PROCESSORS=1
%OS% : 操作系统的名字。(Windows XP 和 Windows 2000 列为 Windows_NT.)  OS=Windows_NT
%Path% : 可执行文件的搜索路径。  Path=C:\WINDOWS\system32;C:\Program Files\Common Files\Adobe\AGL
%PATHEXT% : 操作系统认为可被执行的文件扩展名。  PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
%PROCESSOR_ARCHITECTURE% : 处理器的芯片架构(体系结构)。  PROCESSOR_ARCHITECTURE=x86
%PROCESSOR_IDENTFIER% : 处理器的描述(标识)。  PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 3, GenuineIntel
%PROCESSOR_LEVEL% : 计算机的处理器的型号。  PROCESSOR_LEVEL=6
%PROCESSOR_REVISION% : 处理器的修订号。  PROCESSOR_REVISION=0803
%ProgramFiles% : Program Files应用程序安装的默认文件夹的路径。  ProgramFiles=C:\Program Files
%PROMPT% : 当前命令解释器的命令提示设置。  PROMPT=$P$G
%RANDOM% : 界于0 和 32767之间的随机十进制数。  
%SESSIONNAME% : 连接到终端服务会话时的连接和会话名。  SESSIONNAME=Console
%SYSTEMDRIVE% : Windows系统目录所在驱动器(盘符)。  SystemDrive=C:
%SYSTEMROOT% : Windows系统目录。  SystemRoot=C:\WINDOWS
%TEMP% :当前登录的用户可用应用程序的默认临时目录,有些程序会自动删去其临时文件。  TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
%TMP% : 当前登录的用户可用应用程序的默认临时目录,有些程序会自动删去其临时文件。  TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
***有些程序可能调用%TEMP%,有些则是%TMP%。两者的值默认是相同的。可以更改,建议不必要改动。  
%TIME% : 当前时间(与TIME /t 命令同格式)。  
%USERDNSDOMAIN%:当前用户所在的域的DNS表示  %USERDNSDOMAIN%=MCSE.COM
%USERDOMAIN% : 包含用户帐号的域的名字。  USERDOMAIN=OWEN
%USERNAME% : 当前登录的用户名  USERNAME=Administrator
%USERPROFILE% : 当前用户配置文件(Profile文件)位置。  USERPROFILE=C:\Documents and Settings\Administrator
%WINDIR% : 操作系统目录  windir=C:\WINDOWS 


转自:http://blog.csdn.net/sea_sharka_17/article/details/4177882

 

Windows环境变量编程设定


本文由浅入深的讲解环境变量的定义、使用。对Win98、WinMe、NT、XP、Win2003的不同系统下的应用进行了全面的分析。并以编程方式实现设置Windows环境变量。这对于一般程序编制和软件安装程序编制都有重要的意义。

 

一 什么是用户环境变量、什么是系统环境变量:

环境变量的定义(参考msdn):环境变量是一个string组成的array。它是计算机的一系列设置(setting),环境变量用以指定文件的搜索路径、临时文件目录、特定应用程序(application-specific)的选项和其他类似信息。默认情况下,每个进程(process)的环境变量拷贝自父进程。当然父进程也能够为子进程指定不同的环境变量。

环境变量控制着多种程序的行为。例如,TEMP 环境变量指定程序放置临时文件的位置。任何用户都可以添加、修改或删除用户的环境变量。但是,只有管理员才能添加、修改或删除系统环境变量。使用“控制面板”中的“系统”可以自定义下列变量:(1)用于 登陆用户名(logged_on_user_name) 的用户环境变量;对于特定计算机的每个用户来说,用户环境变量是不同的。变量包括由用户设置的任何内容,以及由应用程序定义的所有变量,例如应用程序文件的路径。(2)系统环境变量 ;管理员可以更改或添加应用到系统(从而应用到系统中的所有用户)的环境变量。安装期间,Windows安装程序配置默认的系统变量,例如 Windows 文件的路径。

二 用户环境变量的作用、系统环境的作用:

举例往往是说明一个问题的最好办法,在Win2000下,我们观察“PATH”这个环境变量,

PATH= %SystemRoot%/system32。但是 “SystemRoot”又是一个环境变量, SystemRoot =d:/winnt,所以环境变量“TMP”的最终表征的路径为“d:/winnt/SYSTEM32”.如我们手动编辑系统环境变量PATH。修改后PATH=%SystemRoot%/system32;C:/ Program Files。然后设计一个代码,实现浏览器打开目录“C:/Program Files”。这仅涉及一个简单的ShellExecute API:

       ShellExecute(NULL, "explore", "Internet Explorer",NULL, "c://Program Files", SW_SHOWNORMAL);

等价于

       ShellExecute(NULL,"explore","Internet Explorer",NULL,"%path%",

SW_SHOWNORMAL);

但是后者有很大的灵活性,不修改代码只修改环境变量path的就能完成新的功能。这对于软件安装程序有着很好的意义。熟练的应用环境变量,有助于写出灵活、模块化的软件。

以上虽然以Win2000为例讲解,但同样适用于其他Windows系统,只是win98系列设置环境变量的方式不同,详情见下节:设定环境变量的算法。

三 设定环境变量的算法:

对于对Win98、WinMe、NT、XP、Win2003一揽子操作系统,可以分为两类:win98系列,NT系列。它们设定系统环境变量有着本质的不同。但对于设置当前进程的环境变量是一样的。

A 关于系统环境变量

1)win98系列设定系统环境变量的算法:

    熟悉win98的都清楚,在C盘一般都有一个“AutoExec.bat”文件,系统启动都要执行它,所以这里是设定系统环境变量的地方,添加一个环境变量只是添加一行

SET PATH=C:/FOLDER1/FOLDER2类似的语句。如果添加一个路径,那么就是类似的语句

SET PATH=C:/FOLDER1/FOLDER2;D:/FOLDER3 。系统要重新启动更改才能有效。

2)NT系列的设定系统环境变量的算法:

    首先分析手动编辑环境变量的原理,通过阅读MSDN文档,发现系统其实在注册表

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment

保存系统环境变量,当手动修改完毕时,选择“确定”按钮退出,向系统所有上级窗口发送WM_SETTINGCHANGE消息。系统不需要重新启动。

 

[插曲]:如何向系统所有上级窗口发送WM_SETTINGCHANGE消息?我仔细观看MSDN代码也没有给出一个例子。只能自己想办法,我编写了一个程序专门接受发送给它的WM_SETTINGCHANGE的消息,代码如下:

OnSettingChange(UINT uFlags, LPCTSTR lpszSection){….}

然后手动修改系统环境变量,这是程序接收到消息,分析uFlags, lpszSection两个参数,得知uFlags=0, lpszSection=”Environment”;

然后模仿该消息,向系统所有上级窗口发送WM_SETTINGCHANGE消息。

       B 关于当前的进程的环境变量

       这个范围的环境变量很简单,进程执行时该变量有效,退出时就失效。所涉及的API就限于GetEnvironmentVariable、SetEnvironmentVariable、GetEnvironmentStrings、SetEnvironmentStrings等。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值