risposta-alla-domanda-sullo-sviluppo-web-bd.com

La variabile di ambiente è troppo grande su Windows 10

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. enter image description here

106
olammy

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" e 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 di lunghezza fissa e infine regolare la posizione della directory bin in PATH.

Spero che questo ti aiuti!

110
Swapnil Kamat

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 piccolo strumento C # che puoi modificare in qualunque altra logica tu voglia implementare.

34
Shital Shah

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) usando uno script PowerShell;

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.

26
Sifou13

Oltre alla risposta di Swapnil, nota che puoi modificare la lunghezza massima di un singolo percorso nella variabile Path, che altrimenti è storicamente limitata a 260 caratteri. In Windows 10, puoi ottenere questo impostando la chiave di registro LongPathsEnabled su 1, che puoi trovare qui:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

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

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

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

8
alexlomba87

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 \

a

% 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.

6
Bryan

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 al registro Hive "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 il comando Prompt Shell 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

1
LeoZ

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.

0
B E

Oltre ad altri metodi (ad esempio Powershell), ho trovato una GUI piacevole, "Rapid Environment Editor" in grado di gestire valori di testo più grandi.

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

0
Amir

Aggiungendo alle altre risposte, se hai l'Editor criteri di gruppo nelle finestre, premi WINKEY + R e scrivi gpedit.msc, nella finestra che si apre sul lato dell'albero a sinistra, vai a:

Configurazione computer -> Modelli amministrativi -> Sistema -> File system e fare doppio clic su "Abilita percorsi lunghi Win32" e impostare su Abilita. Potrebbe essere necessario riavviare per rendere effettive le modifiche.

Si noti che come persona che crea uno strumento per la gestione delle variabili di ambiente per un progetto specifico su cui lavoro, posso dire che le variabili di ambiente di Windows sono piuttosto buggy quando si tratta di fare riferimento a variabili che fanno già riferimento a un'altra variabile, che è silenziosa fa schifo e in per leggere correttamente questo tipo di variabili, è necessario avviare l'applicazione che legge queste variabili con il permesso di evasione (come admin), altrimenti leggerebbe le variabili come% SOME_VARIABLE%/Cartella1/Cartella2. Ecco perché ho smesso di usare quella funzionalità e di utilizzare il percorso assoluto poiché ho impostato molte variabili nelle variabili di ambiente utente e di sistema per il mio ambiente di sviluppo. Consiglio di non fare riferimento a una variabile che contiene già una variabile referenziata dalla mia esperienza per evitare questo tipo di situazioni.

0
Gilad Reich