1
我希望能夠設置一個系統環境變量在Perl和我寫了下面的腳本(從this idea啓發)來實現:如何在Perl中設置Win32系統環境變量?
use Win32;
use Win32::API;
use Win32::OLE qw(in);
my $machine = ".";
my $WMIServices = Win32::OLE->GetObject ("winmgmts:{impersonationLevel=impersonate,(security)}//$machine/root/cimv2") || die;
my $objVariable = $WMIServices->Get("Win32_Environment")->SpawnInstance_;
$objVariable->{Name}="NewOSType";
$objVariable->{UserName} = "<System>";
$objVariable->{VariableValue} = "LAMBDA";
$objVariable->Put_;
不過,我不是在Perl的專家,我想了解專家對此代碼的看法。這是完成這個最好的方法嗎?
我不在是Perl或Windows的專家。我建議(以及專家也會)在代碼中使用'嚴格'和'使用警告'。這被認爲是良好的做法,並會節省您的時間。 – 2010-10-01 06:59:18
在Unix上,您執行'$ ENV {VARIABLENAME} =「選擇的值」;'。 我不知道在Windows上不這樣做的原因,但它部分取決於'系統環境變量'的含義。我懷疑你可能會試圖篡改註冊表。爲此,您需要準確的輸入。 – 2010-10-01 07:01:33
@Jonathan,系統環境變量,我的意思是你可以在計算機屬性>高級>環境變量>系統中找到的環境變量。即使在系統重新啓動後,這些變量仍然存在;但是,如果我們執行$ ENV {VARIABLENAME} =「選定的值」,那麼該變量僅對當前會話有效。 – Santhosh 2010-10-01 08:17:58