环境变量是为了方便 系统 查找 可执行程序 或 文件,而定义的变量。环境变量的值是一个或多个路径。
先来看一下常用的环境变量 Path 的值:
C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files\Lenovo\Fingerprint Manager Pro\;C:\Program Files\Condusiv Technologies\ExpressCache\;C:\ProgramData\Lenovo\ReadyApps;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
其值为N个路径,路径与路径之间用分号隔开。
为了理解环境变量,我们先来看几个基本变量的定义。
int myCLanguageScore = 58; //定义了一个整形变量,这个变量表示我的C语言成绩为 58分
char myMajor[] = "Computer Science"; //定义了一个字符数组,表示我的学习专业为计算机
我们定义变量,是为了用它来表示某个信息。
我们定义环境变量,是为了用它来记录一些特定的路径。
记录这些路径干什么?
方便找到特定的应用程序 或者 文件。比如我们经常用到的 ping 命令。
ping 命令是用来检测网络联通性的,能ping通,则表明网络已经联通了。
我们通常这么用ping,比如 ping 192.168.1.1 。这个命令的本质是执行了
C:\Windows\System32\PING.EXE 这个程序,然后 将 192.168.1.1 作为参数传递给了ping 程序。
假如没有环境变量,那么我们使用ping 的时候,需要这么用 C:\Windows\System32\PING.EXE 192.168.1.1。
这样用起来是不是不方便。当然了,这么用,我们除了要多打一些文字之外,我们还要记得这个程序在哪个目录下。
这就有了环境变量的出现。
那么我们的ping 这个程序对应的环境变量在哪里呢?我也没找到 C:\Windows\System32 这个路径啊。
这个其实是在Path环境变量中,%SystemRoot%\system32 就表示 C:\Windows\System32 这个路径。
%SystemRoot% 的值为 C:\Windows。 这个 SystemRoot 是注册表中定义的一个变量,其值为 C:\Windows,
在 注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
这个位置可以找到 SystemRoot的定义。
好吧,那么定义了环境变量之后,系统又是如何使用环境变量的呢?
把操作系统看成一个大程序,而环境变量则是在操作系统main函数之外定义的全局变量。
当我们运行一个程序时,比如ping程序,操作系统先根据现有信息,只有一个ping,
发现不知道运行哪个具体程序,这时候,操作系统就去环境变量指定的路径下去找ping程序,
在C:\Windows\System32这个目录下找到ping程序后,就运行ping程序。
所以,当我们想要运行某个程序,而又不想每次都指定它的路径时,就可以将该程序所在的路径
放到环境变量中去。