it-swarm.com.de

Umgebungsvariable ist unter Windows 10 zu groß

Ich weiß, dass dies seltsam ist, und ich habe fast 3 Tage damit verbracht, online nach der Lösung zu suchen, ohne eine nützliche Lösung zu erhalten. Also habe ich beschlossen, hierher zu kommen.

Ich habe kürzlich ein Upgrade von Windows 8.1 auf Windows 10 durchgeführt.

Jetzt wollte ich eine Umgebungsvariable für meine neue Installation von Apache Maven festlegen.

Jedes Mal, wenn ich die Benutzervariable erstellt habe, ist alles in Ordnung. Ich muss jedoch auch die Systemvariable erstellen, in der ich das bin-Verzeichnis an die Variable anhängen muss, die ich in der Benutzervariablen erstellen möchte, um "Pfad" zu sein.

Jetzt erhalte ich jedes Mal einen Fehler mit der Meldung "Diese Umgebungsvariable ist zu groß. Infolgedessen kann ich den Pfad nicht erstellen.

Ich habe Bild von diesem Fehler angehängt.

Ich würde mich freuen, wenn mir jemand bei der Lösung dieses Problems behilflich sein könnte.

Vielen Dank im voraus für Ihre Hilfe. enter image description here

106
olammy

Wenn die PATH-Variable mit zu vielen Werten überladen wird, erreicht sie einen Punkt, an dem Sie keine Werte mehr hinzufügen können. Wenn Sie Folgendes versuchen, sollte das Problem behoben sein.

Lösung 1:

  1. Erstellen Sie eine neue Systemvariable, sagen Sie 'NEWPATH'.
  2. Weisen Sie den Bin-Verzeichnisspeicherort "NEWPATH" zu.
  3. Hängen Sie nun ';% NEWPATH%' an die Variable PATH an

Wenn dies immer noch nicht funktioniert, versuchen Sie, einen Teil der bereits vorhandenen Werte der PATH-Variablen in den 'NEWPATH' zu kopieren und dann den 'NEWPATH' anzuhängen.

Lösung 2:

Überprüfen Sie den Wert der Variablen PATH, wenn Sie die Pfade gruppieren und kürzen können. Beispielsweise,

C:\Programme\Microsoft SQL Server\102\Tools\Binn \; C:\Programme\Microsoft SQL Server\102\DTS\Bin \;

kombinierbar mit

C:\Programme\Microsoft SQL Server;

Auf diese Weise können Sie mehr Speicherplatz in Ihre PATH-Variable mit fester Länge einbauen und schließlich die Position Ihres bin-Verzeichnisses in PATH ändern.

Hoffe das hilft dir!

110
Swapnil Kamat

Es gibt nur wenige Möglichkeiten, Ihre Pfadvariable zu bereinigen. Am einfachsten ist die Verwendung von Rapid Environment Editor . Dieses kostenlose Dienstprogramm wird,

  1. Entfernen Sie die doppelten Pfade (Rechtsklick> Bereinigungspfade)
  2. Nicht vorhandene Ordner entfernen (rot dargestellt, die manuell gelöscht werden müssen)
  3. Ersetzen Sie lange Pfade durch kurze Pfade (Rechtsklick> langer bis kurzer Pfad).

Ich führe die obigen Schritte aus, um den dritten Schritt nur für die längsten Pfade zu verwenden, bis die Größe der Pfadvariablen wieder die Kontrolle hat.

Wenn Sie sich weiterentwickeln möchten, können Sie mit kleines C # -Tool die Logik ändern, die Sie implementieren möchten.

34
Shital Shah

Eine andere Lösung oder eine bessere Lösung zur Umgehung der variablen Längenbeschränkung für den Umgebungspfad besteht darin, Ihren Pfad (Hinzufügen, Entfernen oder Aktualisieren) mithilfe eines PowerShell-Skripts zu verwalten.

1) Erfassen Sie die aktuelle PATH-Variable, indem Sie auf "Text bearbeiten" klicken (siehe Screenshot oben), kopieren Sie sie in Ihre Zwischenablage und speichern Sie sie in einer Textdatei als Backup, um böse Überraschungen zu vermeiden. Dies ist nicht obligatorisch, ermöglicht Ihnen jedoch die Wiederherstellung, falls etwas schief geht.

2) Fügen Sie nach dem Sichern Folgendes zu einer neuen PowerShell-Datei (.ps1) hinzu (indem Sie die erste Zeile darunter mit den Ordnerpfaden abändern, die Sie hinzufügen möchten (der Teil nach dem + -Zeichen):

$newPath = $env:Path + '; C:\Users\....\FirstFolderToAddToPath; C:\Users\....\SecondFolderToAddToPath;'

[Environment]::SetEnvironmentVariable("Path", $newPath, "Machine")

$env:Path = $newPath

Auf diese Weise gelang es mir, meine (lange) PATH-Variable zurückzugewinnen, nachdem ich mit der Windows 10-Benutzeroberfläche gespielt hatte, von der Längenbeschränkung erfasst zu werden und den größten Teil meines Pfades zu verlieren. Ich hoffe, es hilft.

26
Sifou13

Beachten Sie, dass Sie zusätzlich zur Antwort von Swapnil die maximale Länge eines einzelnen Pfads in der Variablen Path ändern können - die ansonsten historisch auf 260 Zeichen beschränkt ist. In Windows 10 erreichen Sie dies, indem Sie den Registrierungsschlüssel LongPathsEnabled auf 1 setzen. Diesen finden Sie hier:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

So greifen Sie auf den Registrierungseditor zu: Windows Key+R, geben Sie Regedit ein.

Quelle: https://superuser.com/a/111998

Schauen Sie sich auch diese SuperUser-Antwort an: https://superuser.com/a/1119980/327009

8
alexlomba87

Späte Antwort, aber ich habe nach etwas Ähnlichem gesucht und bin hier gelandet. Ich habe alle Pfade zu Variablen für Programmdateien und Programmdaten geändert (dieser speichert 1 Zeichen, ist aber nicht so wichtig).

Für so etwas wie nodejs habe ich den normalen Pfad von geändert

C:\Programme\nodejs \

zu

% ProgramFiles%\nodejs \

Dies kann auch mit "C:\Programme (x86) \" unter Verwendung von "% ProgramFiles (x86)% \" erfolgen.

Es hat mir ein paar Charaktere gerettet, aber genug, dass ich mich nicht mehr beschweren musste.

6
Bryan

Problemumgehung:

Bitte starten Sie das System neu. Nach dem Neustart des Systems ist PATH nicht mehr leer, sondern wird möglicherweise auf 2047 (4095) Zeichen gekürzt. Wenn der Systemneustart nicht hilft, gehen Sie wie folgt vor:

Starten Sie c:\windows\system32\regedit.exe. Wechseln Sie zur Registrierungsstruktur "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment". Bereinigen Sie nicht benötigte Verzeichnisse über den Schlüssel "Path". Starten Sie neu das System

Hinweis: In einigen Ausnahmefällen, wenn das System nicht gestartet werden kann, gehen Sie wie folgt vor:

Im abgesicherten Modus anmelden Öffnen Sie den Befehl Prompt Shell und geben Sie Folgendes ein: reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"/v Pfad/t REG_EXPAND_SZ/d ^% SystemRoot ^%\system32; ^% SystemRoot ^%/f

Weitere Informationen: https://software.intel.com/de-de/articles/limitation-to-the-lengt-of-the-system-path-variable

1
LeoZ

Ich fand, dass Sie über PowerShell tun können.

[System.Environment]::SetEnvironmentVariable("PATH", "C:\Program Files (x86......etc.....", "Machine")

Also griff ich nach dem vorhandenen System-PATH, fügte es in den Editor ein, fügte mein neues Ding hinzu und fügte es dann in das Bit "C:\Programme" des obigen ein. Pfad aktualisiert. Getan.

0
B E

Zusätzlich zu anderen Methoden (z. B. Powershell) habe ich eine nette Benutzeroberfläche gefunden, den "Rapid Environment Editor", der größere Textwerte verarbeiten kann.

https://www.rapidee.com/en/download

0
Amir

Wenn Sie den Gruppenrichtlinien-Editor in Ihren Fenstern haben, drücken Sie neben den anderen Antworten WINKEY + R und schreiben Sie gpedit.msc. Gehen Sie in dem Fenster, das auf der linken Baumseite angezeigt wird, zu:

Computerkonfiguration -> Administrative Vorlagen -> System -> Dateisystem und doppelklicken Sie auf "Lange Win32-Pfade aktivieren" und aktivieren Sie diese Option. Möglicherweise müssen Sie neu starten, damit die Änderungen wirksam werden.

Beachten Sie, dass ich als Person, die ein Tool zum Verwalten von Umgebungsvariablen für ein bestimmtes Projekt erstellt, sagen kann, dass Windows-Umgebungsvariablen ziemlich fehlerhaft sind, wenn es darum geht, Variablen auf Variablen zu verweisen, die bereits auf eine andere Variable verweisen Um diese Art von Variablen richtig lesen zu können, müssen Sie die Anwendung starten, die diese Variablen mit der Berechtigung evault (als Administrator) liest. Andernfalls werden die Variablen als% SOME_VARIABLE%/Folder1/Folder2 gelesen. Aus diesem Grund habe ich aufgehört, diese Funktion und den absoluten Pfad zu verwenden, da in meinen Benutzer- und Systemumgebungsvariablen für meine Entwicklungsumgebung viele Variablen festgelegt sind. Ich empfehle, aus meiner Erfahrung nicht auf eine Variable zu verweisen, die bereits eine referenzierte Variable enthält, um solche Situationen zu vermeiden.

0
Gilad Reich