1. 什么是环境变量?
要回答这个问题,首先得说说什么是windows的cmdshell。因为,环境变量从来都不是普通PC用户关心的内容, 绝大多数时候, 环境变量都是因为cmdshell才显得重要。
cmdshell --“命令外壳”,其实是windows的命令解释器,它负责把户输入的cmd(可以简单地理解为DOS命令,虽说很狭义,不准确),对应到一个DOS命令的执行,或者一支程序的开启。帮助用户以更快的速度运行windows的常见操作,比如浏览、管理文件,执行应用程序等,完全摆脱缓慢的鼠标操作。这对于普通用户而言,确实没有多少吸引力,但是对于工作于windows下的程序员而言,却相当重要。
我们从开始菜单-->运行-->cmd打开的命令提示符窗口,很多人称它为“XP的DOS”,不够专业,却也无伤大雅。它就像linux的Terminal一样,是cmdshell和用户交流的窗口。在这里,用户键入cmd给shell,shell负责执行相应的命令或者程序,并且把执行的返回信息即时地显示在窗口上。
现在,关于什么是cmdshell,想必您已有所了解,它跟linux的shell(bsh, csh, tcsh, ksh等),在功能和外边上,都是极其相似的。下面我们言归正传,接着来看什么是环境变量。
在cmdshell当中,我们要打开一支程序(通常是.exe文件),需要把这个程序的完整路径写在命令行上(提示符之后),比如”F:\Program Files\Microsoft Office\OFFICE11\winword.exe",然后回车,即可打开word程序。这里, 我们很容易发现,输入这样一行命令,是件很费精力的事情,特别是对于喜欢简单和高效程序员来说,如此费力的事情太可怕了,简直就是不可想象的!
于是,我们在想,能否用一条简短的指令,比如winword,去代替上面那条常常的命令?当然可以,windows环境变量(environment variable)正是提供了这样一种途径!它指定了命令(程序、可执行文件)的查找路径,当shell在当前目录下找不到用户需要执行的程序时,它会去环境变量所指定的每一个目录下去寻找,找到之后,便开始执行。还是举上面的例子,如果我们的环境变量里,存在F:\Program Files\Microsoft Office\OFFICE11\这个值,那么,当我们对shell输入winword这个命令的时候,shell就会在指定的路径里找到winword.exe这个程序(忽略后缀.exe),从而打开word。
讲到这里,想必您已经明白什么是windows环境变量了吧。其实windows环境变量会被更专业地称作aliases或者placeholder,从名字上就可以看出来它的作用了,不是吗?aliases--别名,比较形象,以上面的例子来说,它就是给一个很长的命令去了一个相对非常简短的名字。placeholder则从本质上道出了环境变量的作用,“存放(命令、程序)的地方”。
2. 如何设置环境变量?
设置环境变量的方法:我的电脑-->右键-->属性-->高级-->环境变量-->xx's 环境变量-->path-->修改-->把目标路径添加进去(注意,要用分号跟前面的值隔开呀。怎么,没有这个变量,那就请您新建一个吧)。
这里,顺便提醒一个细节:看到了吗?是xx's环境变量, 对于同一windows的其它用户,不管用哦。
3. 执行常见的程序
一般地,windows默认了一些路径作为环境变量的值,因此,你可以直接打开该路径下的程序,比如calc打开计算器,notepad打开记事本,等。如果你把msoffice的安装路径添加到了环境变量,那么,您应该可以用winword, powerpnt, excel分别打开微软的办公三剑客。同理,你可以非常轻松地在cmdshell命令提示符上打开你喜欢的任何程序wmplayer, gvim, 等等。
末尾, 要再说一下,windows的环境变量(path)和linux下面的path变量(常常在.cshrc文件中设定),真的不仅形似,而且很神似。都说linux和windows差别太大,其实,很多方面,她们长的还是很像。