Perl操作系统环境变量的脚本代码_perl教程-查字典教程网
Perl操作系统环境变量的脚本代码
Perl操作系统环境变量的脚本代码
发布时间:2016-12-28 来源:查字典编辑
摘要:如何用Perl脚本操作系统环境变量呢?想必很多朋友马上就会想到Perl中提供的$ENV这个特殊的哈希变量,对,在$ENV中完全可以获取到一些...

如何用Perl脚本操作系统环境变量呢?

想必很多朋友马上就会想到Perl中提供的$ENV这个特殊的哈希变量,对,在$ENV中完全可以获取到一些系统变量。怎么获取呢?比如想要知道Path这个系统环境变量的内容,我们可以通过$ENV{'Path'} 来获取。如果想设置Path这个环境变量呢,哈,使用$ENV{'Path'}=‘C:WindowsSystem32'来设置。想获取所有的环境变量列表也很简单,哈希遍历不就可以了~

其实,本文中真正想问的是,你在通过上述方法设置了一个环境变量后,右击"我的电脑"的属性,选中高级选项卡后查看的Path变量值真的改变了吗?其实,细心的你会发现,完全没变!但千万不要抱怨Perl欺骗了你,它其实并没有欺骗你,而是你没有真正的理解。其实,Path变量可以通过设置$ENV{'Path'}来设置,但是这个设置所引起的改变只是Session级别的,即你程序级别的。如果还不理解的话,可以想象成打开一个CMD后,输入SET Path="C:Royen"所引起的效果,即在这个窗口中运行过程中Path环境变量是"C:Royen",而你再打开一个Cmd后的新的窗口的Path变量则会发现完全不是”C:Royen“;

所以想要真正的添加或者改变一个系统环境变量,我们需要求助于注册表帮忙。只要找到环境变量在注册表中存储的位置即可。

一般系统变量可以在注册表 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment下面可以找到。

实现:

复制代码 代码如下:

my $loc="SYSTEMCurrentControlSetControlSession ManagerEnvironment";

my $regkey;

$HKEY_LOCAL_MACHINE->Open($loc,$regkey) || die "Open Registry Fail,Information:$!n";

$regkey->SetValueEx("PERLLIB",0,REG_SZ,"c:stafbin;c:stafbinPerl58");

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新perl学习
    热门perl学习
    脚本专栏子分类