当前位置: 移动技术网 > IT编程>网页制作>Perl > Perl操作系统环境变量的脚本代码

Perl操作系统环境变量的脚本代码

2017年12月08日  | 移动技术网IT编程  | 我要评论
如何用perl脚本操作系统环境变量呢? 想必很多朋友马上就会想到perl中提供的$env这个特殊的哈希变量,对,在$env中完全可以获取到一些系统变量。怎么获取呢?比如想

如何用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");

添加环境变量后,记得重启下机器,以使其生效。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网