Propriétés système
Cette variable d'environnement est trop grande. Cette boîte de dialogue permet de définir des valeurs allant jusqu'à 2047 caractères.
J'utilise/ai utilisé beaucoup de logiciels, et mon chemin a donc grandi. Lorsque j'essaie d'ajouter de nouveaux chemins, je reçois le message ci-dessus. En guise de solution de contournement, j'édite mon chemin utilisateur, mais je préfère ne pas le faire.
La documentation de Microsoft indique qu'une variable d'environnement sous Windows est limitée à 32 767 caractères ( lien ), mais n'indique pas comment créer une variable aussi longue.
Le problème ici est que les outils fournis par Windows ont tous leurs limites:
Les commandes set et setx tronquent les valeurs à 1023 caractères.
La définition directe dans le registre à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
échoue car regedit tronque les chaînes entrées après 2047 caractères.
Vous devez donc utiliser des solutions de contournement.
Utilisez des noms de dossiers courts
Vous pouvez voir ces noms en utilisant dir /x /ad
. L'exemple suivant montre que sur mon ordinateur, le dossier Program Files (x86)
peut être remplacé par PROGRA~2
:
Utiliser des variables d'environnement incorporées
Si tu as:
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir1
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir2
alors vous pouvez créer une nouvelle variable d'environnement telle que:
SET P1=C:\this_is_a\long_path\that_appears\in_multiple_places
après quoi vos chemins originaux deviennent
%P1%\subdir1
%P1%\subdir2
Vous pouvez également scinder PATH en deux en créant une nouvelle variable, nommée NEWPATH
, contenant les chemins en excès, et ajouter ;%NEWPATH%
à la variable PATH.
Évitez d’utiliser commande setx car cela résoudra directement les variables d’environnement incorporées et la chaîne résultante sera encore une fois trop longue.
Utilisez un script PowerShell pour définir le PATH
PowerShell appelle directement l'API Windows et peut ainsi approcher la limite théorique de 32 767 caractères pour une variable d'environnement.
Le script peut contenir des commandes telles que:
[Environment]::SetEnvironmentVariable("Path", $longpath, "Machine")