2015-12-28 9 views
44

So che questo è strano e ho trascorso quasi 3 giorni cercando la soluzione online senza ottenere uno utile. Quindi ho deciso di venire qui.La variabile di ambiente è troppo grande su Windows 10

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, ho anche bisogno di creare la variabile di sistema in cui sarà necessario aggiungere la directory bin alla variabile che ho creato nella variabile utente come "percorso".

Ora, ogni volta che faccio questo ottengo un Erron che dice "questa variabile di ambiente è troppo grande. Come conseguenza di questo, sono in grado di creare il percorso.

Ho allegato immagine di questo errore .

io apprezzo questo se qualcuno mi può aiutare a risolvere questo problema.

vi ringrazio in anticipo per la vostra assistenza. enter image description here

+6

Spero che risolvano questo giorno. Questo non dovrebbe mai accadere. ^^ – itmuckel

risposta

53

Quando variabile PATH viene sovraccaricato con troppi valori che essa raggiunge un punto wh prima non puoi più aggiungere valori. Provare quanto segue dovrebbe risolvere il tuo problema.

Soluzione 1:

  1. Creare una nuova variabile di sistema dire 'Newpath'
  2. assegnare la posizione della directory bin a 'Newpath'
  3. Ora accodare '; % Newpath% 'alla variabile PATH

Se questo ancora non funziona quindi provare a copiare una parte di variabile PATH valori già esistenti per la 'Newpath' e poi aggiungere il 'Newpath'

Soluzione 2:

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

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

possono essere combinati per

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!

+0

Benvenuto nella nostra comunità Swapnil Kamat. – ehsan88

+0

Grazie Ehsan! –

+0

Sì, sei molto corretto. Tante ricerche mi hanno mostrato che la variabile percorso può contenere solo 2048 caratteri e quando i personaggi arrivano a questo livello, la variabile percorso non sarà più in grado di prendere più caratteri. Così ho provato quello che mi hai suggerito e ora sto bene. Grazie – olammy

3

Risposta tardiva, ma stavo cercando qualcosa di simile e sono finito qui. Ho cambiato tutti i percorsi delle variabili per i file di programma e i dati del programma (questo salva come 1 carattere anche se non altrettanto importante).

per qualcosa come nodejs, ho cambiato il normale percorso di

C: \ Program Files \ nodejs \

a

% Programmi% \ nodejs \

Questo può essere fatto con "C: \ Program Files (x86) \" pure usando "% ProgramFiles (x86)% \"

Mi ha salvato alcuni caratteri ma abbastanza da smettere di lamentarmi.

+1

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 del personaggio. – Xorcist

+0

@ Xorcist - bello! Non avevo idea di quelli – mark1234

+0

Non penso che esistano di default ma puoi crearli da soli. –

5

In aggiunta alla risposta di Swapnil, si noti che è possibile modificare la lunghezza massima della variabile Path, che è stata storicamente limitata a 260 caratteri. In Windows 10, a raggiungere questo impostando la chiave del Registro di sistema LongPathsEnabled 1, che può essere trovato qui:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 

per accedere all'editor di registro: Ctrl+R, tipo Regedit.

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

anche dare un'occhiata a questo SuperUser risposta: https://superuser.com/a/1119980/327009

+3

È questo un consiglio preciso? La lunghezza massima della variabile PATH (ad es. * Concatenazione di più percorsi *) è di 2048 caratteri. 260 caratteri che hai menzionato è la lunghezza massima di * un percorso *. Sono imparentati ma non uguali. –

9

Un'altra soluzione o più di una soluzione per bypassare il limite di lunghezza variabile d'ambiente PATH è quello di gestire il vostro percorso (aggiungere, rimuovere o aggiornare) utilizzando uno script PowerShell;

1) Catturare la variabile PATH corrente facendo clic su "Modifica testo" (vedere l'immagine sopra) e copiarla negli Appunti e salvarla in un file di testo come backup anche per evitare brutte sorprese. Questo non è obbligatorio ma ti permetterà di recuperare se qualcosa dovesse andare storto.

2) Ora che è stato eseguito il backup, aggiungere quanto segue a un nuovo file di PowerShell (.ps1) (modificando la prima riga in basso 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 

Questo è come sono riuscito ad ottenere la mia variabile (lungo) percorso di ritorno dopo aver giocato con il Windows 10 interfaccia utente, di essere catturati dalla limitazione di lunghezza e di sciogliere la maggior parte del mio percorso spero che aiuta

..
+0

Grazie .. Questo è stato facile. Curioso qual è la differenza tra l'assegnazione di un valore nella riga 2 e 3 – Nayak

+0

La riga 3 lo imposta nella sessione corrente, la riga 2 la imposta come predefinita della macchina. –

+0

PS funziona per un percorso più lungo ma il tradizionale 'setx/m' tronca a 1048 caratteri :(. Puoi anche modificare il percorso nell'editor di testo e fare semplicemente' [Ambiente] :: SetEnvironmentVariable ("Percorso", "\ mio \ nuovo; percorso1 ', "Macchina") 'Avrai bisogno della shell di amministrazione – ShitalShah

-1

Workarround Utilizzare Modifica testo e modificare il PERCORSO in un editor di testo

+0

Sto cercando di seguire il tuo consiglio: quale file sono le variabili ambientali memorizzate nel mio computer? –

+0

è solo testo. –

1

Soluzione temporanea:

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

lancio c: \ windows \ system32 \ regedit.exe Vai all'hive del Registro di sistema "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 per iniziare per favore:

Entrata in modalità sicura Aprire il prompt della shell 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 ulteriori dettagli: https://software.intel.com/en-us/articles/limitation-to-the-length-of-the-system-path-variable

1

Esistono alcuni modi per pulire la variabile del percorso. Il modo più semplice è utilizzare Rapid Environment Editor. Questo programma di utilità libero arbitrio,

  1. Rimuovere i percorsi duplicati (tasto destro> Cleanup Percorsi)
  2. rimuovere le cartelle inesistenti (indicati in rosso, che è necessario eliminare manualmente)
  3. Sostituire lunghi percorsi con percorsi brevi (tasto destro del mouse> da lungo a breve percorso).

Faccio sopra i passaggi in ordine e utilizzo il 3 ° passaggio solo per i percorsi più lunghi fino a quando la dimensione variabile del percorso è nuovamente in controllo.

Se si desidera andare più avanzati, ecco little C# tool che è possibile modificare in qualsiasi altra logica che si desidera implementare.

0

aggiunta alle altre risposte, se avete Editor Criteri di gruppo in Windows, premere WINKEY + R e scrivere gpedit.msc, nella finestra che si apre sul lato sinistro albero, vai a:

Computer Configurazione -> Modelli amministrativi -> Sistema -> File system e fare doppio clic su "Abilita percorsi lunghi Win32" e impostare su Abilita. Potrebbe essere necessario riavviare affinché le modifiche abbiano effetto.

Si noti che come persona che crea uno strumento per la gestione delle variabili di ambiente per 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 già fanno riferimento a un'altra variabile, che è quiet sucks e per leggere correttamente questo tipo di variabili, è necessario avviare l'applicazione che legge queste variabili con permesso evault (come admin), altrimenti leggerà le variabili come% SOME_VARIABLE%/Folder1/Folder2. Ecco perché ho smesso di usare quella caratteristica e ho usato il percorso assoluto perché ho un sacco di variabili impostate nelle variabili utente e di sistema per il mio ambiente di sviluppo. Raccomando di non fare riferimento a una variabile che contiene già una variabile referenziata dalla mia esperienza per evitare questo tipo di situazioni.