La variabile di ambiente è troppo grande su Windows 10


147

So che è strano e ho trascorso quasi 3 giorni a cercare la soluzione online senza averne una utile. Quindi ho deciso di venire qui.

Ho recentemente aggiornato a Windows 10 da Windows 8.1.

Ora volevo impostare una variabile di ambiente per la mia nuova installazione di Apache Maven.

Ogni volta che ho creato la variabile utente, le cose vanno bene. Tuttavia, devo anche creare la variabile di sistema in cui dovrò aggiungere la directory bin alla variabile che creo aready nella variabile utente per essere "percorso".

Ora, ogni volta che lo faccio, ricevo un errore che dice "Questa variabile di ambiente è troppo grande. Di conseguenza, non riesco a creare il percorso.

Ho allegato l'immagine di questo errore.

Lo apprezzerò se qualcuno mi può aiutare a risolvere questo problema.

Grazie in anticipo per la vostra assistenza.inserisci qui la descrizione dell'immagine


14
Spero che risolveranno un giorno. Questo non dovrebbe mai accadere. ^^
itmuckel,

1
La soluzione corretta è che le applicazioni smettano di abusare PATHdella variabile d'ambiente. La soluzione corretta esiste da quasi 2 decenni . Ma convincere gli sviluppatori a usarlo è come tirare i denti.
Ian Boyd,

Risposte:


148

Quando la variabile PATH viene sovraccaricata con troppi valori, raggiunge un punto in cui non è più possibile aggiungere valori. Provare quanto segue dovrebbe risolvere il tuo problema.

Soluzione 1:

  1. Creare una nuova variabile di sistema dire 'NEWPATH'
  2. Assegna il percorso della directory bin a 'NEWPATH'
  3. Ora aggiungi ' ; % NEWPATH% 'alla variabile PATH

Se il problema persiste, prova a copiare una parte della variabile PATH valori già esistenti in "NEWPATH", quindi aggiungi "NEWPATH"

Soluzione 2:

Controllare il valore della variabile PATH se è possibile raggruppare e abbreviare i percorsi. Per esempio,

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

può essere combinato con

C: \ Programmi \ Microsoft SQL Server;

In questo modo è possibile creare più spazio nella variabile PATH a lunghezza fissa e infine regolare la posizione della directory bin in PATH.

Spero che questo ti aiuti!


Sì, hai ragione. Tante ricerche mi hanno mostrato che la variabile path può contenere solo 2048 caratteri e quando i personaggi arrivano a questo stadio, la variabile path non sarà più in grado di assumere molto personaggio. Quindi ho provato quello che mi hai suggerito e ora sto bene. Grazie
Olammy il

Grazie! È un'ottima idea @ soluzione 1! Avrei dovuto pensarci anche io ... :)
Dev-iL

2
Funziona come un incantesimo, grazie! Tuttavia, bisogna essere cauti quando si usa setx PATHperché questo risolverà direttamente la %NEWPATH%e la stringa risultante sarà ancora una volta troppo lunga ... Quindi, usando questo approccio, dovrebbero essere utilizzati solo il dialogo e non la riga di comando
IceFire

1
@SwapnilKamat Questo non funziona completamente: sto usando miktex, pdflatexdeve essere in PATH, se inserisco la posizione di pdflatexin NEWPATH, pdflatexnon viene più trovato ("il comando pdflatexnon viene riconosciuto" ...)
Olorin

7
Ironia della sorte, Microsoft SQL Server ha impostato così tante variabili di percorso che da solo quasi riempie lo spazio. Ho creato una variabile PATHS_MSSQL e quindi ho aggiunto% PATHS_MSSQL% alla variabile PATH per prendere il loro posto. Liberato molto spazio nella variabile PATH.
Steve Lloyd,

49

Esistono alcuni modi per ripulire la variabile del percorso. Il più semplice è usare Rapid Environment Editor . Questa utility gratuita,

  1. Rimuovere i percorsi duplicati (clic destro> Percorsi di pulizia)
  2. Rimuovere le cartelle inesistenti (visualizzate in rosso che è necessario eliminare manualmente)
  3. Sostituisci percorsi lunghi con percorsi brevi (clic destro> percorso lungo a breve).

Faccio i passaggi precedenti in ordine e utilizzo il 3 ° passaggio solo per i percorsi più lunghi fino a quando le dimensioni della variabile Path non sono di nuovo sotto controllo.

Se vuoi andare più avanzato, ecco il piccolo strumento C # che puoi modificare in qualunque altra logica tu voglia implementare.


Prima di leggere questo post, non avevo mai sentito parlare di nessuno degli strumenti ma sono contento di averlo fatto! Grazie per la condivisione!
James Shaw,

2
Questo strumento è fantastico! MS dovrebbe renderlo l'editor ufficiale fornito con Windows!
burzum,

35

Un'altra soluzione o più una soluzione alternativa per aggirare il limite di lunghezza variabile PERCORSO Ambiente è quella di gestire il percorso (aggiungere, rimuovere o aggiornare) utilizzando uno PowerShellscript;

  1. Cattura l'attuale variabile PATH facendo clic su "Modifica testo" (vedi screenshot sopra) e copialo negli appunti e salvalo in un file di testo come backup anche per evitare brutte sorprese. Questo non è obbligatorio ma ti consentirà di recuperare in caso di problemi.

  2. Ora che è stato eseguito il backup, aggiungere quanto segue a un nuovo file PowerShell (.ps1) (modificando la prima riga di seguito con i percorsi della cartella che si desidera aggiungere (la parte dopo il segno +):

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

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

    $ env: Path = $ newPath

È così che sono riuscito a recuperare la mia (lunga) variabile PATH dopo aver giocato con l'interfaccia utente di Windows 10, venendo colto dalla limitazione della lunghezza e perdendo gran parte del mio percorso. Spero possa essere d'aiuto.


Grazie .. È stato facile. Curioso qual è la differenza tra l'assegnazione del valore nella riga 2 e 3
Nayak

La riga 3 lo imposta nella sessione corrente, la riga 2 lo imposta come predefinito della macchina.
Tetsujin no Oni,

2
PS funziona per un percorso più lungo ma tradizionale si setx /mtronca a 1048 caratteri :(. Puoi anche modificare il percorso nell'editor di testo e basta [Environment]::SetEnvironmentVariable("Path", '\my\new;path1', "Machine"). Avrai bisogno di una shell di amministrazione.
Shital Shah,

È possibile usare PS ma non usare la GUI. Hm, che senso ha? Grazie, grazie!
Legends

11

Oltre alla risposta di Swapnil, nota che puoi modificare la lunghezza massima della variabile Path - che altrimenti è limitata a 2048 caratteri (mentre un singolo percorso ha un limite storico di 206 caratteri). In Windows 10, puoi ottenere questo impostando la LongPathsEnabledchiave di registro su 1, che puoi trovare qui:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

Per accedere all'editor del registro:, Windows Key+Rdigitare Regedit.

Fonte: https://superuser.com/a/1119980

Dai anche un'occhiata a questa risposta di SuperUser: https://superuser.com/a/1119980/327009

Affrontare il commento di seguito: l'errore "La variabile di ambiente è troppo grande" è correlato all'intera variabile, non al singolo percorso attualmente aggiunto.


19
Questo consiglio è accurato? La lunghezza massima della variabile PATH (ovvero la concatenazione di più percorsi ) è di 2048 caratteri. 260 caratteri che hai menzionato è la lunghezza massima di un percorso . Sono imparentati ma non uguali.
Hendy Irawan,

7

Risposta in ritardo ma stavo cercando qualcosa di simile e sono finito qui. Ho cambiato tutti i percorsi in variabili per file di programma e programdata (questo salva come 1 carattere anche se non è così importante).

Per qualcosa come nodejs, ho cambiato il normale percorso di

C: \ Programmi \ nodejs \

per

% Programmi% \ nodejs \

Questo può essere fatto con "C: \ Programmi (x86) \" e usando anche "% ProgramFiles (x86)% \"

Mi ha salvato alcuni personaggi, ma abbastanza da smettere di lamentarmi.


7
Perché non usare solo% x86% per sostituire "C: \ Programmi (x86)" e% x64% per sostituire "C: \ Programmi", sembra che sia un modo molto migliore per ridurre il sovraccarico di caratteri.
Xorcist,

1
@Xorcist - bello! Non ne avevo idea
mark1234

Non penso che esistano per impostazione predefinita, ma puoi crearli tu stesso.
Gabriel Fair,

mi è piaciuto anche quello, ho creato% PF% per "c: \ Programmi" e usarlo circa 20 volte mi ha permesso di abbreviare abbastanza il percorso.
LaBracca,

@Xorcist come si fa creando un'altra variabile?
Demodave

5

Ho scoperto che puoi farlo tramite PowerShell.

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

Quindi ho afferrato il sistema esistente PATH, incollato nel blocco note, aggiunto la mia nuova cosa, quindi incollato nel bit "C: \ Programmi" di cui sopra. Percorso aggiornato. Fatto.


4

Prova a modificarlo regedit, nel mio caso funziona quando la lunghezza supera i 3000.

Premere Win + Re accedere regeditper aprire regedit. Vai a Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environmente modifica il valore del Pathtuo percorso. E riavvia il computer, dovrebbe funzionare.


1
Questo ha funzionato bene per me. Penso che sia facile rispetto ad altri metodi.
Shalitha Senanayaka,

1

Soluzione:

Si prega di riavviare il sistema. Dopo aver riavviato il sistema, PATH non è più vuoto, ma potrebbe essere troncato a 2047 (4095) caratteri Se il riavvio del sistema non aiuta, per favore:

Avvia c: \ windows \ system32 \ regedit.exe Vai all'hive del registro "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" Elimina le directory non necessarie dal tasto "Percorso" Riavvia il sistema

Nota: in alcuni casi eccezionali se il sistema non è in grado di avviarsi, per favore:

Accesso in modalità provvisoria Aprire la shell del prompt dei comandi e digitare: reg add "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v Path / t REG_EXPAND_SZ / d ^% SystemRoot ^% \ system32; ^% SystemRoot ^% / f

Per maggiori dettagli: https://software.intel.com/en-us/articles/limitation-to-the-length-of-the-system-path-variable


Come aumentare il limite almeno 4095?
Dan M.,


0

Apparentemente Rapid Environment Editor lo farà per te (dalla risposta di @shatil_shah), ma puoi anche accorciare i percorsi alla loro versione "8dot3". Otterrai un sacco di chilometraggio con solo questi due ricambi:

C:\Program Files       --> C:\PROGRA~1
C:\Program Files (x86) --> C:\PROGRA~2

Se copi il percorso corrente in Blocco note, cerca prima e sostituisci, C:\Program Files (x86)quindi C:\Progam Files.


-3

Workarround. Usa Modifica testo e modifica il PERCORSO in un editor di testo


2
Sto cercando di seguire il tuo consiglio. In quale file sono archiviate le variabili ambientali sul mio computer?
Gabriel Fair,

è solo testo. Aprilo usando il blocco note
Christoph Adamakis,

@GabrielFair Devi fare clic sul pulsante chiamato Edit Text, invece di aprire un file.
AlexMelw,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.