Komputer & Internet

w domu i zagrodzie

PATH i inne zmienne środowiskowe

Zmienna środowiskowa (ang. environment variable), to prawie zwykła zmienna. Prawie, bo od zwykłej różni się tym, iż jest zarządzana przez powłokę. Zmienna ta może wpływać na działanie procesów uruchamianych w systemie operacyjnym stając się pewnego rodzaju mechanizmem komunikacji, lub też przechowywać wartość do późniejszego ich wykorzystania.
W systemach uniksowych, jak i też w DOS i Windows, każdy proces posiada zestaw swoich zmiennych środowiskowych. Nowo tworzony proces dziedziczy zmienne środowiskowe swojego „rodzica”, chyba że ten zmieni wartości niektórych z nich podczas tworzenia procesu potomnego.

Zmienne środowiskowe odgrywają ważną rolę i większość programów za ich pośrednictwem pobiera różne parametry.

Zmienna PATH

PATH, to zmienna środowiskowa zawierająca listę katalogów, które system ma przeszukać aby wykonać zlecony przez użytkownika program.

Ale o co chodzi?

Najprościej wytłumaczyć to na przykładzie. Otwórzmy więc nowy dokument w najlepszym edytorze dla skryptów i wpiszmy:

@echo off
echo To jest program %0%.

Plik zapiszmy jako c:\mybat.bat. Wpisanie teraz w wiersz poleceń mybat wyświetli następujący komunikat:

To jest program mybat.

Działa ok, czyli zgodnie z naszymi oczekiwaniami. A teraz wydajmy następujące polecenia:

c:\>mkdir c:\mycmd
c:\>move c:\mybat.bat c:\mycmd\
c:\>mybat

W pierwszej linii tworzymy na dysku c nowy folder o nazwie mycmd. W drugim wierszu przenosimy nasz program z c:\ do nowego katalogu. Ale teraz próba wykonania naszego programu – wiersz trzeci – wyświetli takie coś:

Nazwa ‚mybat’ nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne, program wykonywalny lub plik wsadowy.

Co jest? Przecież plik ciągle powinien być na dysku c, tylko w katalogu mycmd. Jak więc nazwa mybat może być nierozpoznana?!

No i plik jest, tylko skąd system ma wiedzieć, że program który chcemy uruchomić jest teraz akurat w c:\mycmd? Aby uruchomić go w nowej lokalizacji musimy podać pełną ścieżkę dostępu do programu:

c:\>c:\mycmd\mybat

Albo, samą ścieżkę dodać do zmiennej PATH.

c:\>set PATH=c:\mycmd;%PATH%

Jak działa polecenie set użyte jak wyżej?
Przypisuje ono nową wartość zmiennej PATH, czyli c:\mycmd. Aby jednak nie zamazać jej starej zawartości, ponieważ może ona coś zawierać, ją także dodamy (%PATH% – to podstawia aktualną zawartość zmiennej).

c:\>mybat

Teraz wszystko znowu działa jak trzeba.

Tags:

About

View all posts by

2 Responses

  1. Web Hosting says

    Podobnie zmiany wprowadzone w systemie nie sa widoczne od razu w ramach danej powloki, poniewaz dziala ona na kopii zmiennych srodowiskowych. Ogolne zmienne znajduja sie w galezi „HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment”.

    • geekonet says

      Święte słowa.

POST A COMMENT


Aby udowodnić, że jesteś człowiekiem, a nie spambotem proszę wykonać test poniżej.


*