Wiem, że to dziwne i spędziłem prawie 3 dni na poszukiwaniu rozwiązania w Internecie, ale nie znalazłem przydatnego. Więc zdecydowałem się tu przyjechać.
Niedawno zaktualizowałem system do Windows 10 z Windows 8.1.
Teraz chciałem ustawić zmienną środowiskową dla mojej nowej instalacji Apache Maven.
Za każdym razem, gdy tworzyłem zmienną użytkownika, wszystko jest w porządku. Jednak muszę również utworzyć zmienną systemową, w której będę musiał dołączyć katalog bin do zmiennej, którą już tworzę w zmiennej użytkownika, aby była to „ścieżka”.
Teraz za każdym razem, gdy to robię, otrzymuję błąd, który mówi: „Ta zmienna środowiskowa jest zbyt duża. W rezultacie nie mogę utworzyć ścieżki.
Załączam zdjęcie tego błędu.
Docenię to, jeśli ktoś może mi pomóc rozwiązać ten problem.
źródło
PATH
zmiennej środowiskowej przez aplikacje . Właściwe rozwiązanie istnieje już prawie 2 dekady . Ale skłonienie programistów do korzystania z tego jest jak wyrywanie zębów.Odpowiedzi:
Kiedy zmienna PATH zostaje przeciążona zbyt dużą liczbą wartości, osiąga punkt, w którym nie można już dodawać wartości. Wykonanie poniższych czynności powinno rozwiązać problem.
Rozwiązanie 1:
Jeśli to nadal nie działa, spróbuj skopiować część zmiennej PATH już istniejących wartości do „NEWPATH”, a następnie dodaj „NEWPATH”
Rozwiązanie 2:
Sprawdź wartość zmiennej PATH, jeśli możesz grupować i skracać ścieżki. Na przykład,
C: \ Program Files \ Microsoft SQL Server \ 102 \ Tools \ Binn \; C: \ Program Files \ Microsoft SQL Server \ 102 \ DTS \ Bin \;
można łączyć z
C: \ Program Files \ Microsoft SQL Server;
W ten sposób możesz zbudować więcej miejsca w zmiennej PATH o stałej długości i ostatecznie dostosować położenie katalogu bin do PATH.
Mam nadzieję, że to ci pomoże!
źródło
setx PATH
ponieważ spowoduje to bezpośrednie rozwiązanie problemu,%NEWPATH%
a wynikowy ciąg będzie ponownie zbyt długi ... Tak więc, stosując to podejście, należy używać tylko okna dialogowego, a nie wiersza poleceńpdflatex
musi byćPATH
, jeśli wstawię lokalizacjępdflatex
wNEWPATH
, jużpdflatex
go nie znaleziono ("poleceniepdflatex
nie jest rozpoznawane" ...)Istnieje kilka sposobów na wyczyszczenie zmiennej ścieżki. Najłatwiej jest użyć Rapid Environment Editor . To bezpłatne narzędzie
Wykonuję powyższe kroki w kolejności i używam trzeciego kroku tylko dla najdłuższych ścieżek, dopóki rozmiar zmiennej ścieżki nie będzie ponownie kontrolowany.
Jeśli chcesz przejść bardziej zaawansowane, oto małe narzędzie C # , które możesz zmodyfikować do dowolnej innej logiki, którą chcesz zaimplementować.
źródło
Innym lub większym sposobem obejścia limitu zmiennej długości ścieżki środowiska PATH jest zarządzanie ścieżką (dodawanie, usuwanie lub aktualizowanie) za pomocą
PowerShell
skryptu;Przechwyć bieżącą zmienną PATH, klikając „Edytuj tekst” (patrz powyższy zrzut ekranu) i skopiuj ją do schowka i zapisz w pliku tekstowym jako kopię zapasową, aby uniknąć przykrych niespodzianek. Nie jest to obowiązkowe, ale pozwoli Ci odzyskać sprawność, jeśli coś pójdzie nie tak.
Po utworzeniu kopii zapasowej dodaj następujące elementy do nowego pliku programu PowerShell (.ps1) (zmieniając pierwszy wiersz poniżej ze ścieżkami folderów, które chcesz dodać (część po znaku +):
$ newPath = $ env: Path + '; C: \ Users .... \ FirstFolderToAddToPath; C: \ Users .... \ SecondFolderToAddToPath; '
[Środowisko] :: SetEnvironmentVariable ("Path", $ newPath, "Machine")
$ env: Path = $ newPath
W ten sposób udało mi się odzyskać moją (długą) zmienną PATH po zabawie z interfejsem użytkownika systemu Windows 10, będąc złapanym przez ograniczenie długości i tracąc większość mojej ścieżki. Mam nadzieję, że to pomoże.
źródło
setx /m
obcina do 1048 znaków :(. Możesz także edytować ścieżkę w edytorze tekstu i po prostu zrób to[Environment]::SetEnvironmentVariable("Path", '\my\new;path1', "Machine")
. Będziesz potrzebować powłoki administratora.Oprócz odpowiedzi Swapnil, zwróć uwagę, że możesz zmodyfikować maksymalną długość zmiennej Path - która w innym przypadku jest ograniczona do 2048 znaków (podczas gdy pojedyncza ścieżka ma historyczny limit 206 znaków). W systemie Windows 10 można to osiągnąć, ustawiając
LongPathsEnabled
klucz rejestru na 1, który można znaleźć tutaj:Aby uzyskać dostęp do edytora rejestru:
Windows Key+R
wpiszRegedit
.Źródło: https://superuser.com/a/1119980
Spójrz również na tę odpowiedź SuperUser: https://superuser.com/a/1119980/327009
Uwzględniając poniższy komentarz: błąd „Zmienna środowiskowa jest za duża” dotyczy całej zmiennej, a nie tylko dodawanej pojedynczej ścieżki.
źródło
Późna odpowiedź, ale szukałem czegoś podobnego i znalazłem się tutaj. Zmieniłem wszystkie ścieżki do zmiennych dla plików programu i danych programu (ten zapisuje jak 1 znak, choć nie jest tak ważny).
W przypadku czegoś takiego jak nodejs, zmieniłem normalną ścieżkę
C: \ Pliki programów \ nodejs \
do
% ProgramFiles% \ nodejs \
Można to zrobić za pomocą „C: \ Program Files (x86) \”, a także za pomocą „% ProgramFiles (x86)% \”
Uratowało mi to kilka postaci, ale na tyle, że przestało narzekać.
źródło
Odkryłem, że możesz to zrobić za pomocą PowerShell.
Więc złapałem istniejącą ścieżkę systemową PATH, wkleiłem do notatnika, dodałem nową rzecz, a następnie wkleiłem do fragmentu „C: \ Program Files” powyższego. Zaktualizowano ścieżkę. Gotowe.
źródło
Spróbuj zmodyfikować
regedit
, w moim przypadku działa, gdy długość przekracza 3000.Naciśnij
Win + R
i wprowadź,regedit
aby otworzyć regedit. Idź doComputer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
i zmień wartośćPath
swojej ścieżki. I uruchom ponownie komputer, powinno działać.źródło
Obejście:
Uruchom ponownie system. Po ponownym uruchomieniu systemu ścieżka PATH nie jest już pusta, ale może zostać skrócona do 2047 (4095) znaków.Jeśli ponowne uruchomienie systemu nie pomoże:
Uruchom c: \ windows \ system32 \ regedit.exe Przejdź do gałęzi rejestru „HKLM \ SYSTEM \ CurrentControlSet \ Control \ Menedżer sesji \ Środowisko” Wyczyść niepotrzebne katalogi z klucza „Ścieżka” Uruchom ponownie system
Uwaga: W wyjątkowych przypadkach, gdy system nie może się uruchomić, należy:
Zaloguj się w trybie awaryjnym Otwórz powłokę wiersza poleceń i wpisz: reg dodaj „HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment” / v Path / t REG_EXPAND_SZ / d ^% SystemRoot ^% \ system32; ^% SystemRoot ^% /fa
Więcej informacji: https://software.intel.com/en-us/articles/limitation-to-the-length-of-the-system-path-variable
źródło
4095
?Oprócz innych metod (np. Powershell) znalazłem fajny GUI, „Rapid Environment Editor”, który obsługuje większe wartości tekstowe.
https://www.rapidee.com/en/download
źródło
Najwyraźniej Rapid Environment Editor zrobi to za Ciebie (z odpowiedzi @shatil_shah), ale możesz też skrócić ścieżki do ich wersji „8dot3”. Dzięki tym dwóm zamiennikom uzyskasz duży przebieg:
Jeśli skopiujesz bieżącą ścieżkę do Notatnika, najpierw wyszukaj i zamień,
C:\Program Files (x86)
a następnieC:\Progam Files
.źródło
Obejście problemu. Użyj opcji Edytuj tekst i edytuj swoją ścieżkę w edytorze tekstu
źródło
Edit Text
Zamiast otwierać jakiś plik, trzeba było kliknąć przycisk o nazwie .