Wiem, jak ustawić zmienne środowiskowe specyficzne dla systemu lub użytkownika:
Problem polega na tym, że PATH
zmienna jest traktowana tak, że wartość wprowadzona dla użytkownika PATH zostanie automatycznie dołączona do systemowej PATH i będzie to efektywna zmienna PATH.
To znaczy, powiedz, że mam
(SYSTEM) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...
i (USER) PATH=C:\Program Files\Bar\bin
(pamiętaj, że nie ma %PATH%
tej wartości)
wynikowa zmienna środowiskowa dla tego użytkownika będzie:
(efektywny) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...;C:\Program Files\Bar\bin
Jednak wolałbym, aby dla bardzo konkretnego konta użytkownika systemu operacyjnego zmienna środowiskowa PATH powinna mieć bar\bin
katalog na początku PATH zamiast na końcu.
Czy istnieje właściwy sposób, aby nakazać PATH
systemowi Windows całkowite zastąpienie zmiennej użytkownika wartością dla tego użytkownika zamiast dołączania jej do PATH
zmiennej systemowej ?
Uwaga: Oczywiście z pliku wsadowego wszystko to nie ma znaczenia, ponieważ możesz ustawiać i modyfikować zmienne środowiskowe w dowolny sposób.
źródło
PATH
a to konkretne konto użytkownika lepiej byłoby obsłużyć, mając innePATH
. Wiem, że istnieje wiele obejść, ale byłem zainteresowany, czy jest coś gotowego do działania na poziomie systemu operacyjnego / rejestru.Odpowiedzi:
Jeśli potrzebujesz tego tylko do sesji wiersza polecenia, utwórz plik wsadowy profil / init i skonfiguruj go w rejestrze, zgodnie z /programming/17404165/how-to-run-a-command-on -command-prompt-startup-in-windows . Na przykład,
Następnie po prostu wprowadź zmiany do PATH w tym pliku wsadowym. Na przykład,
źródło
Miałem ten sam problem i to zadziałało dla mnie:
Możesz uzyskać „zmienną ścieżki użytkownika” poprzez:
Dane wyjściowe (na moim komputerze) to:
Ale musisz to przeanalizować i użyć odpowiedniej części.
Czytam tu rozwiązanie tutaj i przetestowane na moim komputerze.
źródło
Nie wiem, jak zignorować zmienną systemową, ale wiem, że jeśli używasz zmiennych sesji (za pomocą
SET
komendy), mają one pierwszeństwo przed innymi zmiennymi. Możesz więc użyćSET PATH=C:\Program Files\Bar\bin
instrukcji, a pożądana ścieżka będzie pierwszą częścią zmiennej.Oto prawidłowe odniesienie, a tutaj zgłaszam prosty okres z tej strony:
źródło
PATH
Zmienna jest wyjątek (szczególny przypadek) - zmienna użytkownik ma nie mieć pierwszeństwo nad zmiennej systemowej. Fakt, że „zmienna sesji” będzie miała pierwszeństwo przed zmiennymi ustawionymi przez użytkownika i system, jest prawdą, ale jak ustawić zmienną sesji automatycznie dla użytkownika? G-Wiz odpowiedział na to pytanie , a AFAICS, nie dodałeś nic do tej odpowiedzi.