La variable de entorno es demasiado grande en Windows 10

147

Sé que esto es extraño y he pasado casi 3 días buscando la solución en línea sin obtener una útil. Entonces he decidido venir aquí.

Recientemente me actualicé a Windows 10 desde Windows 8.1.

Ahora quería establecer una variable de entorno para mi nueva instalación de Apache Maven.

Cada vez que creé la variable de usuario, las cosas están bien. Sin embargo, también necesito crear la variable del sistema donde tendré que agregar el directorio bin a la variable que ya creo en la variable de usuario para que sea "ruta".

Ahora, cada vez que hago esto, aparece un error que dice "Esta variable de entorno es demasiado grande. Como resultado de esto, no puedo crear la ruta.

He adjuntado la imagen de este error.

Apreciaré esto si alguien me puede ayudar a resolver este problema.

Gracias de antemano por su ayuda.ingrese la descripción de la imagen aquí

Olammy
fuente
14
Espero que arreglen esto algún día. Esto nunca debería suceder. ^^
itmuckel
1
La solución correcta es que las aplicaciones dejen de usar mal PATHla variable de entorno. La solución adecuada existe desde hace casi 2 décadas . Pero lograr que los desarrolladores lo usen es como tirar de los dientes.
Ian Boyd el

Respuestas:

148

Cuando la variable PATH se sobrecarga con demasiados valores, alcanza un punto en el que ya no puede agregar valores. Intentar lo siguiente debería resolver su problema.

Solución 1:

  1. Cree una nueva variable del sistema que diga 'NEWPATH'
  2. Asigne la ubicación del directorio bin a 'NEWPATH'
  3. Ahora agregue ' ; % NEWPATH% 'a la variable PATH

Si esto todavía no funciona, intente copiar alguna parte de los valores ya existentes de la variable PATH a 'NEWPATH' y luego agregue 'NEWPATH'

Solución 2:

Verifique el valor de la variable PATH si puede agrupar y acortar las rutas. Por ejemplo,

C: \ Archivos de programa \ Microsoft SQL Server \ 102 \ Tools \ Binn \; C: \ Archivos de programa \ Microsoft SQL Server \ 102 \ DTS \ Bin \;

se puede combinar para

C: \ Archivos de programa \ Microsoft SQL Server;

De esta manera, puede construir más espacio en su variable PATH de longitud fija y finalmente ajustar la ubicación del directorio bin en PATH.

¡Espero que esto te ayude!

Swapnil Kamat
fuente
Sí, tienes mucha razón. Tanta investigación me había demostrado que la variable de ruta solo puede tomar 2048 caracteres y cuando los personajes llegan a esta etapa, la variable de ruta ya no podrá tomar mucho carácter. Así que probé lo que sugeriste y ahora estoy bien. Gracias
olammy
¡Gracias! ¡Esa es una gran idea @ solución 1! Debería haberlo pensado yo mismo ... :)
Dev-iL
2
Esto funciona de maravilla, ¡gracias! Sin embargo, uno debe ser cauteloso al usarlo setx PATHporque esto resolverá directamente %NEWPATH%y la cadena resultante será una vez más demasiado larga ... Entonces, usando este enfoque, solo se debe utilizar el diálogo y no la línea de comando
IceFire
1
@SwapnilKamat Esto no funciona completamente: estoy usando miktex, pdflatextiene que estar adentro PATH, si pongo la ubicación de pdflatexadentro NEWPATH, pdflatexya no se encuentra ("el comando pdflatexno se reconoce" ...)
Olorin
77
Irónicamente, Microsoft SQL Server estableció tantas variables de ruta que solo casi llena el espacio. Creé una variable PATHS_MSSQL y luego agregué% PATHS_MSSQL% a la variable PATH para tomar su lugar. Liberó mucho espacio en la variable PATH.
Steve Lloyd el
49

Hay pocas formas de limpiar su variable de ruta. Lo más fácil es usar Rapid Environment Editor . Esta utilidad gratuita,

  1. Elimine las rutas duplicadas (clic derecho> Rutas de limpieza)
  2. Elimine las carpetas que no existen (se muestra en rojo y debe eliminarlas manualmente)
  3. Reemplace las rutas largas con rutas cortas (clic derecho> ruta larga a corta).

Realizo los pasos anteriores en orden y uso el tercer paso solo para las rutas más largas hasta que el tamaño variable de la ruta vuelva a estar bajo control.

Si desea avanzar más, aquí hay una pequeña herramienta de C # que puede modificar a cualquier otra lógica que desee implementar.

Shital Shah
fuente
Antes de leer esta publicación, nunca había oído hablar de ninguna de las herramientas, ¡pero me alegra haberlo hecho! ¡Gracias por compartir!
James Shaw
2
¡Esta herramienta es asombrosa! ¡MS debería convertirlo en el editor oficial que viene con Windows!
burzum
35

Otra solución o más una solución alternativa para omitir el límite de longitud variable de la RUTA del entorno es administrar su ruta (agregar, eliminar o actualizar) utilizando un PowerShellscript;

  1. Capture la variable PATH actual haciendo clic en "Editar texto" (vea la captura de pantalla anterior) y cópiela en su portapapeles y guárdela también en un archivo de texto como copia de seguridad para evitar sorpresas. Esto no es obligatorio, pero le permitirá recuperarse si algo sale mal.

  2. Ahora que está respaldado, agregue lo siguiente a un nuevo archivo de PowerShell (.ps1) (modificando la primera línea a continuación con las rutas de carpeta que desea agregar (la parte después del signo +):

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

    [Medio ambiente] :: SetEnvironmentVariable ("Ruta", $ newPath, "Máquina")

    $ env: Path = $ newPath

Así es como logré recuperar mi variable (larga) PATH después de jugar con la interfaz de usuario de Windows 10, quedando atrapado por la limitación de longitud y perdiendo la mayor parte de mi camino. Espero que ayude.

Sifou13
fuente
Gracias .. Esto fue fácil. Curioso cuál es la diferencia entre asignar valor en la línea 2 y 3
Nayak
La línea 3 lo establece en la sesión actual, la línea 2 lo establece como la máquina predeterminada.
Tetsujin no Oni
2
PS funciona para una ruta más larga, pero tradicional se setx /mtrunca a 1048 caracteres :(. También puede editar la ruta en el editor de texto y simplemente hacer [Environment]::SetEnvironmentVariable("Path", '\my\new;path1', "Machine"). Necesitará shell de administrador.
Shital Shah
Es posible usar PS pero no usar GUI. Hm, ¿cómo tiene sentido? Votado, gracias!
Leyendas
11

Además de la respuesta de Swapnil, tenga en cuenta que puede modificar la longitud máxima de la variable Ruta, que de otro modo está limitada a 2048 caracteres (mientras que una ruta tiene un límite histórico de 206 caracteres). En Windows 10, puede lograr esto estableciendo la LongPathsEnabledclave de registro en 1, que se puede encontrar aquí:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

Para acceder al editor del registro: Windows Key+Rescriba Regedit.

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

También eche un vistazo a esta respuesta de Superusuario: https://superuser.com/a/1119980/327009

Abordando el comentario a continuación: el error "La variable de entorno es demasiado grande" está relacionado con la variable completa, no con la ruta única que se agrega actualmente.

alexlomba87
fuente
19
¿Es este un consejo exacto? La longitud máxima de la variable PATH (es decir, concatenación de múltiples rutas ) es de 2048 caracteres. 260 caracteres que mencionó son la longitud máxima de una ruta . Están relacionados pero no son lo mismo.
Hendy Irawan
7

Respuesta tardía pero estaba buscando algo similar y terminé aquí. Cambié todas las rutas a variables para archivos de programa y datos de programa (este se guarda como 1 carácter, aunque no es tan importante).

Para algo como nodejs, cambié la ruta normal de

C: \ Archivos de programa \ nodejs \

a

% ProgramFiles% \ nodejs \

Esto se puede hacer con "C: \ Archivos de programa (x86) \" también usando "% ProgramFiles (x86)% \"

Me salvó algunos personajes pero lo suficiente como para dejar de quejarme.

Bryan
fuente
77
¿Por qué no usar% x86% para reemplazar "C: \ Archivos de programa (x86)" y% x64% para reemplazar "C: \ Archivos de programa"? Parece que es una forma mucho mejor de reducir la sobrecarga de caracteres.
Xorcista
1
@Xorcist: ¡bonito! No tenía idea de eso
mark1234
No creo que existan por defecto, pero puede crearlos usted mismo.
Gabriel Fair
También me gustó, creé% PF% para "c: \ Archivos de programa" y usarlo unas 20 veces me permitió acortar la ruta lo suficiente.
LaBracca
@Xorcist ¿cómo se hace eso creando otra variable?
Demodave
5

Descubrí que puedes hacerlo a través de PowerShell.

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

Así que tomé la RUTA del sistema existente, la pegué en el bloc de notas, agregué mi nuevo elemento y luego la pegué en el bit "C: \ Archivos de programa" de lo anterior. Ruta actualizada. Hecho.

SER
fuente
4

Intente modificar por regedit, en mi caso funciona cuando la longitud es superior a 3000.

Presione Win + Re ingrese regeditpara abrir regedit. Vaya a Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environmenty modifique el valor de Pathsu ruta. Y reinicie la computadora, debería funcionar.

Yu Jang Jian
fuente
1
Esto funcionó bien para mí. Creo que es más fácil que otros métodos.
shalitha senanayaka
1

Solución alterna:

Por favor reinicie el sistema. Después de reiniciar el sistema, PATH ya no está vacío, pero puede truncarse a 2047 (4095) caracteres. Si el reinicio del sistema no ayuda, por favor:

Inicie c: \ windows \ system32 \ regedit.exe Vaya a la sección del registro "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" Limpie los directorios innecesarios de la tecla "Ruta" Reinicie el sistema

Nota: En algunos casos excepcionales, si el sistema no puede iniciarse, por favor:

Inicie sesión en modo seguro Abra el shell del símbolo del sistema y escriba: reg agregue "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v Ruta / t REG_EXPAND_SZ / d ^% SystemRoot ^% \ system32; ^% SystemRoot ^% /F

Para más detalles: https://software.intel.com/en-us/articles/limitation-to-the-length-of-the-system-path-variable

LeoZ
fuente
¿Cómo aumentar el límite al menos 4095?
Dan M.
1

Además de otros métodos (por ejemplo, Powershell), encontré una buena GUI, "Rapid Environment Editor" que puede manejar valores de texto más grandes.

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

Amir
fuente
0

Aparentemente, Rapid Environment Editor lo hará por usted (de @shatil_shah answer), pero también puede acortar los caminos a su versión "8dot3". Obtendrá mucho kilometraje con solo estos dos reemplazos:

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

Si copia su ruta actual en el Bloc de notas, primero busque y reemplace C:\Program Files (x86)y luego C:\Progam Files.

bfris
fuente
-3

Workarround. Use Editar texto y edite su RUTA en un Editor de texto

Christoph Adamakis
fuente
2
Estoy tratando de seguir tu consejo. ¿En qué archivo están almacenadas las variables ambientales en mi computadora?
Gabriel Fair
Es solo texto. Ábralo usando el bloc de notas
Christoph Adamakis
@GabrielFair Tenías que hacer clic en el botón llamado Edit Text, en lugar de abrir algún archivo.
AlexMelw