Mam komputer z systemem Windows 7, który po uruchomieniu wiersza polecenia przez zwykłego użytkownika nie rozwija zmiennych środowiskowych w pliku %PATH%
. Jeśli zamiast tego wiersz polecenia jest uruchamiany jako administrator (kliknij prawym przyciskiem myszy, Uruchom jako administrator ), wówczas %PATH%
zostanie odpowiednio rozwinięty.
W szczególności %PATH%
dla cmd.exe
uruchomienia jako użytkownik (wyświetlane przez set path
) jest następujący:
Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\
... natomiast %PATH%
do cmd.exe
Uruchom jako administrator jest w następujący sposób:
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\
Próbowałem zalogować się jako nowy użytkownik, aby utworzyć nowy profil, ale problem nadal występuje w tym profilu. HKEY_CURRENT_USER\Environment\PATH
nie istnieje i HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path
odpowiada zdefiniowanej ścieżce systemowej we Właściwościach komputera -> Zmienne środowiskowe.
Czy ktoś ma jakieś pojęcie o tym, co to może być lub gdzie mogę szukać?
źródło
REG_SZ
problem wystąpi, jeśli ustawię ją z powrotemREG_EXPAND_SZ
, zostanie naprawiony.Podczas próby skonfigurowania Maven napotkałem ten sam problem ...
Znalazłem ten post w Superuser, który rzucił nieco światła na ten problem, ale nie zadziałał dla mnie. Wydawało się, że chodzi o podniesienie uprawnień, ponieważ powłoka administracyjna działałaby, ale powłoka użytkownika nie. W końcu postanowiłem po prostu odtworzyć zmienne użytkownika jako zmienne systemowe i dodać je do ścieżki globalnej.
To zadziałało dla kilku zmiennych, ale miałem jedną parę, która wciąż się nie rozwija. Kilka razy odtworzyłem je z nowymi nazwami, ale bezskutecznie. Jednak zmienne w końcu ostatecznie rozszerzyły się poprawnie w powłoce użytkownika po wyłączeniu UAC, ponownym uruchomieniu, ponownym włączeniu UAC i ponownym uruchomieniu.
źródło
Miałem bardzo podobny problem - prostym rozwiązaniem było dodanie średnika po aliasie w definicji ścieżki .
Długa historia:
Używam,
node.js
więc zdefiniuj alias NODE_HOME za pomocą zmiennej środowiskowej użytkownika. Następnie dołączam ten alias do mojej zmiennej środowiskowej PATH .Zauważyłem, że po ponownym uruchomieniu powłoka straciła ścieżkę do NODE_HOME, więc
npm
itd. Nie będzie działać. Co się dzieje?Podczas inspekcji widzę, że NODE_HOME jest ustawiony, ale że magicznie nabył średnik.
ŚCIEŻKA kończy się teraz dosłownym łańcuchem % NODE_HOME% zamiast rozszerzonej ścieżki do folderu węzła:
Naprawić to:
Najpierw usuń błędne średniki z końca definicji NODE_HOME .
Po drugie, dodaj średnik po symbolu NODE_HOME w definicji ŚCIEŻKI :
Teraz, kiedy rozpocząć i rozwinąć nową powłokę PATH , stwierdzi NODE_HOME :
I
npm
znów działa!źródło
PROBLEM : Mój problem był tylko podobny, ponieważ dobrze cię rozumiem. Moja „Ścieżka” zawierała ...;% ANT_HOME% \ bin; ... Miałem zmienną ANT_HOME poprawnie ustawioną w Zmiennych systemowych (nie użytkownika), a CMD -> SET tak samo jak „echo% ANT_HOME%” wydrukował ją poprawnie .
ROZWIĄZANIE : Rozwiązałem problem, przenosząc folder z c: \ dev \ 3rd \ ant ... do c: ** Programm Files (x86) ** \ dev \ 3rd \ ant ...
źródło