设置环境变量

时间:2022-12-12 09:55:00

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

使用批处理来创建环境变量(永久有效)

获取系统环境变量 
@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
注:将username="<system>"中的<system>改为当前用户名,如yl(不能包含<>),就可以操作用户环境变量了。
  • 方法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();
foreach (var key in ev.Keys)
{
Console.WriteLine(key.ToString() + ":" + ev[key].ToString());
}
获取类型为EnvironmentVariableTarget.Machine的环境变量。

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);
IDictionary evOfUser = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User);
foreach (var ukey in evOfUser.Keys)
{
Console.WriteLine(ukey.ToString() + ":" + evOfUser[ukey].ToString());
}
关于EnvironmentVariableTarget的说明请参考:

http://msdn.microsoft.com/zh-cn/library/system.environmentvariabletarget.aspx