J'ai rencontré un problème étrange - je ne peux pas lancer Visual Studio, ni exécuter de commandes simples à partir de l'invite de commande, apparemment en raison de ma variable PATH trop longue. Maintenant que je le regarde, je vois que de nombreuses entreprises ont ajouté leurs répertoires d'installation à la variable PATH.
Je me demandais pourquoi ces entreprises ont ajouté leurs dossiers au chemin (peut-être pour simplifier l'exécution de leurs programmes?), Et lesquelles sont nécessaires et que je peux supprimer. Si j'en supprime certains, ne pourrai-je pas lancer les programmes? ( Voici ce qui existe actuellement dans le chemin)
PATH
... Qu'est-ce qui vous fait soupçonner que c'est trop long? VS lance-t-il une sorte d'erreur? De plus, quelle version de Windows utilisez-vous?ping
. En outre, il semble que ce ne soit pas rare avec Visual Studio . Il a également été mentionné ici que la limite pour le PATH à l'aide de la ligne de commande est d'environ 2000.The type initializer for 'Microsoft.VisualStudio.Platform.WindowManagement.WindowManagerService' threw an exception.
Réponses:
il est possible de réduire la quantité excessive de chemins dans les variables d'environnement PATH, il suffit d'enregistrer toute la ligne sur un bloc-notes, en tant que sauvegarde et de supprimer certains et de tester.
La plupart d'entre eux sont là, donc si un raccourci n'a pas de chemin d'accès complet défini pour la "cible", si le "démarrage dans" n'est pas défini correctement dans le raccourci ou si un lancement se fait bizarrement, leur programme et ses parties et pièces sont toujours a trouvé. C'est un Failsafe dans la plupart des situations. Vous voudrez toujours tester pleinement toute utilisation d'un programme dont vous avez supprimé les chemins d'accès.
Il est également très utile pour les personnes qui tapent des commandes dans le CMDprompt, même sans CD, l'ordinateur analysera chaque emplacement jusqu'à ce qu'un programme de ce nom soit trouvé et exécuté. Ou toute autre commande du même nom :-)
Cet ensemble de chemins était (ancré) limité à moins de 255 (ou 260) charachters, qui est passé à 1024 il y a longtemps, puis a été corrigé à l'ère du serveur 03 pour gérer 2048, et pourrait soi-disant gérer 8096 sur certains systèmes, même il y a longtemps.
Les vraies limitations découvertes aujourd'hui que les gens rencontrent se trouvent dans le CMDprompt qui a une limite sur la longueur de la chaîne de commande, qui inclut l'expansion des variables et des chemins.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx ici Microsoft dit:
À cet emplacement ^ ils pointent vers l'emplacement de registre qui contient les chemins d'accès système. Il
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
doit y lire le reste.La limitation CMDprompt et batch est de 2048 charachters une fois étendue, et serait 4x celle des nouveaux systèmes (nécessite une citation car les gens ne le voient pas)
Voir également http://support.microsoft.com/kb/830473 , qui traite de l'invite de commande et de la longueur de lot pour les anciens systèmes.
Pour vous assurer que les entrées sont correctes, le wiki a ceci à dire:
http://en.wikipedia.org/wiki/Environment_variable
Avoir tous les chemins supplémentaires ralentit beaucoup certaines choses, car il est alors obligé de regarder dans tous ces endroits, avant d'abandonner. L'utilisation de chemins d'accès complets chaque fois que vous appelez des éléments de fichier sera toujours plus rapide, même lors du traitement par lots ou de l'utilisation de CMDprompt.
L'utilisation d'anciennes conventions DOSlike 8.3 est un moyen de réduire la taille, ce lot /programming//a/20362922 fonctionne bien. assurez-vous (à nouveau) de sauvegarder la chaîne d'origine. Voir également les autres solutions possibles à cette question.
Voici à quoi ressemble la mienne, elle a été pire.
% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files (x86) \ QuickTime \ QTSystem \
Je lancerais Quicktime en un clin d'œil, et les programmes AMD ont mis un chemin étendu avant, il l'a lancé, Adobee en avait un, aucun de ceux-ci ne comptait pour les méthodes de raccourci / icône GUI standard. Beaucoup de choses peuvent être supprimées, puis testez toutes les fonctions. Si vous appelez des choses en tapant dans l'invite CMD, la suppression de ces chemins ne fonctionnera pas.
la source
J'ai plusieurs variables d'environnement liées au développement logiciel sur mon chemin, qui sont toutes importantes.
La solution ci-dessus ne fonctionnerait pas pour moi, alors je suis allé pour les jonctions de répertoire :
C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\
)Faire cela sur 15 chemins a réduit mon CHEMIN de 2045 à 1285 caractères.
Cela peut être un problème lorsque vous désinstallez enfin des éléments de votre machine car les jonctions resteront sur le chemin et vous devrez les nettoyer manuellement.
la source
Bien que le maximum autorisé dans le chemin soit beaucoup plus long, j'ai trouvé sur Stack Overflow des réponses faisant autorité sur ce sujet (et des références Microsoft) qui indiquent qu'une valeur de chemin élargi maximale de 2048 octets fonctionnera, et tout ce qui est plus long entraînera des problèmes. Par "étendu", je veux dire que toutes les variables désignées par des délimiteurs% verront leurs valeurs insérées pour devenir la valeur développée, et la longueur totale développée ne doit pas dépasser 2048 octets. J'ai remarqué que les types de problèmes qu'il provoque (à partir de Windows 7) sont:
Personnellement, je recommande d'autres systèmes d'exploitation que Windows, mais si vous y êtes coincé, vous devez passer vos heures à supprimer les entrées de chemin, à tester pour vous assurer qu'il ne casse rien et à obtenir la valeur du chemin jusqu'à 2048 octets.
la source