一、window
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 n.别名,比较形象,以上面的例子来说,它就是给一个很长的命令去了一个相对非常简短的名字。placeholder n.占位符则从本质上道出了环境变量的作用,“存放(命令、程序)的地方”。
末尾, 要再说一下,windows的环境变量(path)和linux下面的path变量(常常在.cshrc文件中设定),真的不仅形似,而且很神似。都说linux和windows差别太大,其实,很多方面,她们长的还是很像。
2、安装PowerShell
PowerShell 提供了几种不同的方法来使用和管理环境变量。
变量语法
环境提供程序和项 cmdlet
.NET System.Environment 类
3、使用系统控制面板保存环境变量
1)在图形化界面,寻找环境变量.
在“系统控制面板”中,可以在“用户”和“系统(计算机)”作用域中添加或编辑现有环境变量。Windows 将这些值写入注册表,以便它们在会话和系统重新启动后保持不变。
要使用系统控制面板对 Windows 上的环境变量进行持久更改,请执行以下操作:
打开系统控制面板。
选择“系统”。
选择“高级系统设置”。
转到“高级”选项卡。
选择“环境变量…”。
进行更改。
2)按类分析环境变量
Environment variables环境变量 = User variables用户变量 + System variables系统变量
3)常见环境变量大全
- ALLUSERSPROFILE=C:\Documents and Settings\All Users 列出所有用户profile文件位置
- APPDATA=C:\Documents and Settings\xx\Application Data 列出应用程序数据的默认存放位置
- CD=C:\Documents and Settings\xx 列出当前目录。
- CLIENTNAME=Console 列出联接到终端服务会话时客户端的NETBIOS名。
- CMDCMDLINE 列出启动当前cmd.exe 所使用的命令行。
- CMDEXTVERSION 命令出当前命令处理程序扩展版本号。
- CommonProgramFiles=C:\Program Files\Common Files 列出了常用文件的文件夹路径。
- COMPUTERNAME=xx 列出了计算机名。
- ComSpec=C:\WINDOWS\system32\cmd.exe 列出了可执行命令外壳 (命令处理程序)的路径。
- DATE 列出当前日期。
- ERRORLEVEL 列出了最近使用的命令的错误代码。
- HOMEDRIVE=C: 列出用户主目录所在的驱动器盘符。
- HOMEPATH=\Documents and Settings\xx 列出用户主目录的完整路径。
- HOMEDRIVE****HOMEPATH\桌面 桌面
- HOMEDRIVE****HOMEPATH\「开始」菜单 开始菜单
- INCLUDE=D:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include\ vc用户变量
- LIB=D:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Lib\ vc用户变量
- LOGONSERVER=\xx 列出有效的当前登录会话的域名控制器名。
- luapath=F:\hero\bin lua用户变量
- LUA_DEV=d:\Program Files\Lua\5.1 lua用户变量
- LUA_PATH=;;d:\Program Files\Lua\5.1\lua?.luac lua用户变量
- NUMBER_OF_PROCESSORS=2 列出了计算机安装的处理器数。
- OS=Windows_NT 列出操作系统的名字。(WindowsXP 和Windows2000 列为Windows_NT.)
- Path=C:\WINDOWS\system32;C:\WINDOWS;d:\Program Files\Lua\5.1;d:\Program Files\Lua\5.1\clibs 列出了可执行文件的搜索路径。
- PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1;.wlua;.lexe 列出操作系统认为可被执行的文件扩展名。
- PROCESSOR_ARCHITECTURE=x86 列出了处理器的芯片架构。
- PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, GenuineIntel 列出了处理器的描述。
- PROCESSOR_LEVEL=6 列出了计算机的处理器的型号。
- PROCESSOR_REVISION=0f0d 列出了处理器的修订号。
- ProgramFiles=C:\Program Files 列出了ProgramFiles 文件夹的路径。应用程序的默认安装目录
- PROMPT= P P PG 列出了当前命令解释器的命令提示设置。
- RANDOM 列出界于0 和32767 之间的随机十进制数。
- SESSIONNAME=Console 列出连接到终端服务会话时的连接和会话名。
- ssuser=xx vss用户变量
- SystemDrive=C: 列出了Windows 启动目录所在驱动器。
- SystemRoot=C:\WINDOWS 列出了Windows 启动目录的位置。
- TEMP=C:\DOCUME1\xx\LOCALS1\Temp 列出了当前登录的用户可用应用程序的默认临时目录。
- TMP=C:\DOCUME1\xx\LOCALS1\Temp 列出了当前登录的用户可用应用程序的默认临时目录。
- TIME 列出当前时间。
- USERDOMAIN=xx 列出了包含用户帐号的域的名字。
- USERNAME=xx 列出当前登录的用户的名字。
- USERPROFILE=C:\Documents and Settings\xx 列出当前用户Profile 文件位置。
- VS71COMNTOOLS=D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\ vc用户变量
- VS90COMNTOOLS=D:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\ vc用户变量
- windir=C:\WINDOWS 列出操作系统目录的位置