三种环境变量的区别
1.作用域:
应用程序环境变量:当前应用程序进程内有效;
用户环境变量:对当前系统登录用户有效;
系统环境变量:系统内所有用户有效;
2.生效时间:
应用程序环境变量:设置后在应用程序中直接生效;
用户环境变量:重启应用程序生效;
系统环境变量:重启应用程序生效;
3.保存位置:
应用程序环境变量:内存;
用户环境变量:HKEY_CURRENT_USER\Environment;
系统环境变量:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment;
.NET设置和读取环境变量示例
using System;
using System.Diagnostics;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//0.文件准备
string path1 = @"E:\test1", filename1 = "test1.bat";
string path2 = @"E:\test2", filename2 = "test2.bat";
string path3 = @"E:\test3", filename3 = "test3.bat";
Directory.CreateDirectory(path1);
Directory.CreateDirectory(path2);
Directory.CreateDirectory(path3);
File.WriteAllText(path1 + @"\" + filename1, "@echo off\r\necho test1\r\npause");
File.WriteAllText(path2 + @"\" + filename2, "@echo off\r\necho test2\r\npause");
File.WriteAllText(path3 + @"\" + filename3, "@echo off\r\necho test3\r\npause");
//1.应用程序环境变量,马上生效
EnvironmentVariableTarget target1 = EnvironmentVariableTarget.Process;
Environment.SetEnvironmentVariable("Path", Environment.GetEnvironmentVariable("Path", target1) + ";" + path1, target1);
try { Process.Start(filename1, ""); }
catch (Exception ex) { Console.WriteLine(ex.Message); }
//2.用户环境变量,程序重启后生效
EnvironmentVariableTarget target2 = EnvironmentVariableTarget.User;
Environment.SetEnvironmentVariable("Path", Environment.GetEnvironmentVariable("Path", target2) + ";" + path2, target2);
try { Process.Start(filename2, ""); }
catch (Exception ex) { Console.WriteLine(ex.Message); }
//3.系统环境变量,程序重启后生效
EnvironmentVariableTarget target3 = EnvironmentVariableTarget.Machine;
Environment.SetEnvironmentVariable("Path", Environment.GetEnvironmentVariable("Path", target3) + ";" + path3, target3);
try { Process.Start(filename3, ""); }
catch (Exception ex) { Console.WriteLine(ex.Message); }
Console.ReadKey();
}
}
}
评论(0)
暂无评论。