如何用Perl脚本操作系统环境变量呢?
想必很多朋友马上就会想到Perl中提供的$ENV这个特殊的哈希变量,对,在$ENV中完全可以获取到一些系统变量。怎么获取呢?比如想要知道Path这个系统环境变量的内容,我们可以通过$ENV{'Path'} 来获取。如果想设置Path这个环境变量呢,哈,使用$ENV{'Path'}=‘C:\Windows\System32'来设置。想获取所有的环境变量列表也很简单,哈希遍历不就可以了~
其实,本文中真正想问的是,你在通过上述方法设置了一个环境变量后,右击"我的电脑"的属性,选中高级选项卡后查看的Path变量值真的改变了吗?其实,细心的你会发现,完全没变!但千万不要抱怨Perl欺骗了你,它其实并没有欺骗你,而是你没有真正的理解。其实,Path变量可以通过设置$ENV{'Path'}来设置,但是这个设置所引起的改变只是Session级别的,即你程序级别的。如果还不理解的话,可以想象成打开一个CMD后,输入SET Path="C:\\Royen"所引起的效果,即在这个窗口中运行过程中Path环境变量是"C:\\Royen",而你再打开一个Cmd后的新的窗口的Path变量则会发现完全不是”C:\\Royen“;
所以想要真正的添加或者改变一个系统环境变量,我们需要求助于注册表帮忙。只要找到环境变量在注册表中存储的位置即可。
一般系统变量可以在注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment下面可以找到。
实现:
复制代码 代码如下:
my $loc="SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment";
my $regkey;
$HKEY_LOCAL_MACHINE->Open($loc,$regkey) || die "Open Registry Fail,Information:$!\n";
$regkey->SetValueEx("PERLLIB",0,REG_SZ,"c:\\staf\\bin;c:\\staf\\bin\\Perl58");
添加环境变量后,记得重启下机器,以使其生效。
操作系统,环境变量
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?