什么是环境变量,想知道精确的官方定义,可以直接百度。在此,我只想聊聊我对其的认识。
一、环境变量需求的提出
假设在D盘有一个可执行文件“hi.exe”,
想要在控制台中启动,而目前所在的位置是C:\Users\lenovo,那么直接键入hi.exe(可以直接输入hi,省略".exe"),程序会不会启动呢?
会发现程序并没有启动,而且指出“hi.exe不是内部或外部命令,也不是可运行的程序或批处理文件”,为什么会这样呢,其实是因为在当前目录下,找不到hi.exe这个文件。
那么,为了启动程序,我们必须切换到D盘中去,然后再键入hi.exe,于是乎……
程序正常地启动了,并且打印出了“Hello World!”。
我们在为结果高兴的同时,会提出这么一个问题,每一次都要切换到文件所在目录是一件非常麻烦的事情。有没有一种方法可以让我们在任何位置都只需要键入hi.exe就能够启动程序呢?
很幸运地是,系统的开发者也意识到这个问题,于是便给出了一套解决方案。在这套方案中,环境变量横空出世。只需要我们配置一下环境变量,上述问题便可以轻松解决。
二、如何配置环境变量
那么,问题来了,到底该如何配置环境变量呢?这里介绍2种方法。
①在计算机属性里面配置(一劳永逸的方法,即只需要配置这一次,以后就都可以用了)。
a.在桌面计算机图标上右键,弹出一个菜单,选择“属性”;
b.在左侧控制面板主页中选择“高级系统设置”;
c.在弹出来的系统属性窗口中选择“环境变量”;
d.在弹出的环境变量窗口中找到"Path"项,选中并点击编辑;
e.在最前面添加文件所在目录,并添加分号与后面的内容分隔开,点击确定,环境变量便配置好了。
②在控制台下用“set path”命令配置(临时的,控制台关闭后还原为配置前状态)。
后面的%path%表示获取原来的path配置,整个表示在原先配置的基础上添加"D:\;"。
三、检验需求是否满足
好了,环境变量配置好了,现在去试试能否轻松便捷地启动程序。
惊喜地发现在C、D、E、F盘都只需要键入hi.exe就能启动程序了。开心吧?!
四、当前目录与环境变量配置的目录孰先孰后
本来写到上面就可以结束了,因为目的已经达到了,但是既然写了,就再深入一步吧,来探讨一下当前目录与环境变量配置的目录孰先孰后的问题。什么意思呢?
比如,我现在有两个同名文件"Test.exe",分别在E盘和F盘,E盘的程序输出“这个是环境变量配置的目录的文件!”,F盘的程序输出“这个是当前目录的文件!”。假设现在环境变量配置为“E:\;%path%”,并且切换到F盘下,此时如果键入Test.exe,会启动哪程序呢?E盘的还是F盘的程序呢?
通过结果,我们可以看出,启动的是F盘下(当前目录)的程序。
此时,如果删除F盘下的Test.exe文件,情况会怎么样呢?
通过结果,可以看出启动的是E盘下(环境变量配置的目录)的程序。
小结一下:在启动一个程序时,会先在当前目录下查找该程序文件,如果有就直接执行;否则,再去环境变量配置的目录下查找是否存在该文件,有就执行。