如何用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");
添加環境變量后,記得重啟下機器,以使其生效。
您可能感興趣的文章:- Windows10下hyperledger fabric1.4環境搭建過程圖解
- 在EditPlus中配置Perl開發編譯環境
- Perl使用nginx FastCGI環境做WEB開發實例
- Windows10下安裝配置 perl 環境的詳細教程