1 何为环境变量
环境变量是操作系统用来保存系统运行环境所需配置信息的变量,如操作系统型号、处理器个数、可执行程序的扩展名、可执行程序的默认搜索路径等。
2 环境变量的作用
- 快速访问文件夹
如本机存在值为“C:\Program Files (x86)\Sandcastle”的系统变量DXROOT,那么只要在运行窗口输入“%DXROOT%”就可以打开这个文件夹了。使用这种方法同样可以快速访问系统文件夹,如输入“%temp%”,可以定位到目录“C:\Users\XX\AppData\Local\Temp”,输入“%WinDIR%”可以定位到目录“C:\Windows”等。
- 运行隐藏程序
如我们在运行窗口输入“calc”就可以打开计算机,输入“mspaint”就可以打开画图工具,那是因为计算器和画图工具的路径均为“C:\Windows\System32”,而这个路径已经加入到系统环境变量PATH中的缘故。系统在运行程序时除了在当前文件夹中寻找外,还会到设置的默认路径(这里的PATH中所记录的路径)中去查找可执行文件。
3 环境变量分类
环境变量分为系统环境变量和用户环境变量。系统环境变量对所有用户都起作用,用户环境变量只对当前用户起作用。
4 Windows系统环境变量大全
请阅读:http://blog.csdn.net/yl2isoft/article/details/18460203
5 设置环境变量
- 方法1
在WIN8下,可以通过“计算机--属性--更改设置--高级--环境变量”打开环境变量窗口,设置环境变量。可以新建,编辑,删除用户环境变量和系统环境变量。
- 方法2
使用批处理来创建环境变量(永久有效)
获取系统环境变量注:将username="<system>"中的<system>改为当前用户名,如yl(不能包含<>),就可以操作用户环境变量了。
@echo off
wmic ENVIRONMENT where "name='temp'" get UserName,VariableValue
pause
新增系统环境变量
@echo off
wmic ENVIRONMENT create name="WSP",username="<system>",VariableValue="C:\WSP"
pause
更改系统环境变量
@echo off
wmic ENVIRONMENT where "name='WSP' and username='<system>'" set VariableValue="C:\YL"
pause
删除系统环境变量
@echo off
wmic ENVIRONMENT where "name='WSP'" delete
pause
- 方法3
使用set命令修改环境变量(一次性有效,也就是在当前的脚本中有效)
在命令行执行以下操作。
查看环境变量
C:\Users\yl>set
查看某一个环境变量
C:\Users\yl>set path
创建一个环境变量
C:\Users\yl>set YL=C:\YL
删除一个环境变量
C:\Users\yl>set YL=
更改一个环境变量(可以是追加方式)
C:\Users\yl>set YL=%path%;C:\YL
- 方法4
使用C#代码设置环境变量
可以使用Environment类的静态方法SetEnvironmentVariable和GetEnvironmentVariables来设置或者获取环境变量。
获取所有环境变量。
IDictionary ev = Environment.GetEnvironmentVariables();获取类型为EnvironmentVariableTarget.Machine的环境变量。
foreach (var key in ev.Keys)
{
Console.WriteLine(key.ToString() + ":" + ev[key].ToString());
}
IDictionary evOfMachine = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine);设置环境变量。
foreach (var mkey in evOfMachine.Keys)
{
Console.WriteLine(mkey.ToString() + ":" + evOfMachine[mkey].ToString());
}
Environment.SetEnvironmentVariable("YL", @"C:\YL\", EnvironmentVariableTarget.User);关于EnvironmentVariableTarget的说明请参考:
IDictionary evOfUser = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User);
foreach (var ukey in evOfUser.Keys)
{
Console.WriteLine(ukey.ToString() + ":" + evOfUser[ukey].ToString());
}
http://msdn.microsoft.com/zh-cn/library/system.environmentvariabletarget.aspx