2009-02-04 16 views

Odpowiedz

16

Jeśli trzeba zmienić zmienne środowiskowe na całym świecie i na stałe, a jeśli go ustawić w panelu sterowania, a następnie trzeba muck with the registry (działka i teraz istnieją moduły do ​​tego, Win32::Env i Win32::Env::Path). Należy zauważyć, że zmiana zmiennych w rejestrze i "rozgłaszanie" zmiany nie zmieni zmiennych środowiskowych w niektórych bieżących procesach, w szczególności perl.exe i cmd.exe.

Jeśli chcesz tylko zmienić bieżący proces (a następnie pojawił się proces potomny), wówczas potrzebna jest globalna zmienna hasłowa% ENV (np. $ ENV {PATH}). Zobacz perldoc perlvar.

+0

Zobacz http://search.cpan.org/~adamk/Win32-Env-Path-0.01/lib/Win32/Env/Path.pm dla modułu, który wydaje się robić mniej więcej to, co opisano w tym węźle perlmonks. – oeuftete

+0

Dzięki, nie wiedziałem o tych modułach ... i nie istniały one w czasie węzła perlmonks. – runrig

+0

Ktoś mógł bardzo dobrze zainspirować się swoim postem ... kto wie. :) Nie wygląda na to, że zawiera twój krok z węzła PM w celu nadania aktualizacji. – oeuftete

7

$ ENV {PATH}?

Należy pamiętać, że zmienne środowiskowe wpływają jednak tylko na podprocesy. Nie można uruchomić programu Perl, zmienić% ENV, a następnie zobaczyć, że zmiana w procesie nadrzędnym - środowisko nie działa w ten sposób.

+0

LOL, udało nam się przesłać tę samą odpowiedź w tej samej sekundzie! :-p –

+0

Wielkie umysły myślą podobnie;) – jrockway

+0

Ack, to było właśnie to, co chciałem zrobić. Dzięki za odpowiedź i tak – Xetius

4

Można to zrobić za pomocą %ENV hash

$ENV{PATH} = 'C:\\Windows\;D:\\Programs'; 
Powiązane problemy