我们装很多软件都需要配置环境变量,配置的多了,就会好奇环境变量究竟意味着什么?

  这里先把msdn上的Environment variables的部分原文贴出来:

  翻译如下:

  每个进程都有包含环境变量和它们的值的环境块,环境变量有两种:用户环境变量(为每个用户自己设置)和系统环境变量(为所有用户设置)。

  默认的,一个子进程继承他父进程的环境变量,由command processor(即cmd)启动的进程继承command processor的环境变量,为了给子进程指定一个不一样的环境变量,则需创建一个新的环境块通过指针作为参数传给CreateProcess函数。command processor (程序)提供了set命令来显示他的环境变量块或者是创建新的环境变量,你也可以查看或是修改环境变量,通过选择控制面板中的系统,选择高级系统设置,并点击环境变量。

  每个环境变量块包含如下格式的环境变量:

    Var1=Value1\0

    Var2=Value2\0

    Var3=Value3\0

    …

    VarN=ValueN\0\0

  一个环境变量的名字不能包含等号(=)。

  而环境变量中的很多东西是有不同的用处的,其中path变量中的作用就是,任何程序当打开文件时,系统会从当前文件夹下和path变量所包含的路径中寻找这个文件。在CMD中也一样,cmd中的很多命令,其实都是一段段小程序,通过包含程序所在的目录,即可以变成cmd命令。比如我们写了一段程序如下:

  

#include<stdio.h>
int main(char* argv[],int argc)
{
    printf("123");
    return 0;
}

  最后把它编译后保存到了G:/MyFiles 中,名字为cat.exe。这时只要在path中加入G:/MyFiles;点击确定之后,就可以在cmd中编写cat,cmd就会输出123了。所以很多人说Windows不能编写自己的命令,其实是不对的。(关于具体如何传参这里不再细讲)。

  而所谓环境变量,也是变量,在cmd中,按照dos变量的输出方法,输出ehco %SYSTEMROOT%就会输出环境变量systemroot的值:

  其中echo表示输出,变量前后加%是dos命令变量的输出方式。

  所以从翻译中就可以了解,系统环境变量就可以让所有的用户使用,而用户变量就只可以给自己用啦。

版权声明:本文为FWFC原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/FWFC/p/8954684.html