如何用Perl腳本操作系統(tǒng)環(huán)境變量呢?
想必很多朋友馬上就會(huì)想到Perl中提供的$ENV這個(gè)特殊的哈希變量,對(duì),在$ENV中完全可以獲取到一些系統(tǒng)變量。怎么獲取呢?比如想要知道Path這個(gè)系統(tǒng)環(huán)境變量的內(nèi)容,我們可以通過$ENV{'Path'} 來獲取。如果想設(shè)置Path這個(gè)環(huán)境變量呢,哈,使用$ENV{'Path'}=‘C:\Windows\System32'來設(shè)置。想獲取所有的環(huán)境變量列表也很簡單,哈希遍歷不就可以了~
其實(shí),本文中真正想問的是,你在通過上述方法設(shè)置了一個(gè)環(huán)境變量后,右擊"我的電腦"的屬性,選中高級(jí)選項(xiàng)卡后查看的Path變量值真的改變了嗎?其實(shí),細(xì)心的你會(huì)發(fā)現(xiàn),完全沒變!但千萬不要抱怨Perl欺騙了你,它其實(shí)并沒有欺騙你,而是你沒有真正的理解。其實(shí),Path變量可以通過設(shè)置$ENV{'Path'}來設(shè)置,但是這個(gè)設(shè)置所引起的改變只是Session級(jí)別的,即你程序級(jí)別的。如果還不理解的話,可以想象成打開一個(gè)CMD后,輸入SET Path="C:\\Royen"所引起的效果,即在這個(gè)窗口中運(yùn)行過程中Path環(huán)境變量是"C:\\Royen",而你再打開一個(gè)Cmd后的新的窗口的Path變量則會(huì)發(fā)現(xiàn)完全不是”C:\\Royen“;
所以想要真正的添加或者改變一個(gè)系統(tǒng)環(huán)境變量,我們需要求助于注冊表幫忙。只要找到環(huán)境變量在注冊表中存儲(chǔ)的位置即可。
一般系統(tǒng)變量可以在注冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment下面可以找到。
實(shí)現(xiàn):
復(fù)制代碼 代碼如下:
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");
添加環(huán)境變量后,記得重啟下機(jī)器,以使其生效。
您可能感興趣的文章:- Windows10下hyperledger fabric1.4環(huán)境搭建過程圖解
- 在EditPlus中配置Perl開發(fā)編譯環(huán)境
- Perl使用nginx FastCGI環(huán)境做WEB開發(fā)實(shí)例
- Windows10下安裝配置 perl 環(huán)境的詳細(xì)教程