Demasiadas pastas na variável de caminho

13

Encontrei um problema estranho - não consigo iniciar o Visual Studio nem executar comandos simples no prompt de comando, aparentemente porque minha variável PATH está sendo muito longa. Agora que vejo isso, vejo que muitas empresas adicionaram seus diretórios de instalação à variável PATH.

Eu queria saber por que essas empresas adicionaram suas pastas ao caminho (talvez para tornar mais simples executar seus programas?), e quais são necessárias e quais posso excluir. Se eu excluir alguns deles, não poderei iniciar os programas? ( Veja aqui o que existe atualmente no caminho)

    
por CC Inc 22.08.2013 / 03:55

3 respostas

13

é possível reduzir a quantidade excessiva de caminhos nas variáveis de ambiente PATH, basta salvar a linha inteira em um bloco de notas, como um backup e remover alguns e testar.

A maioria deles está lá, portanto, se um atalho não tiver um caminho completo definido para o "Destino", Se o "Iniciar" não estiver definido corretamente no atalho ou se for feito um lançamento estranhamente o programa e suas partes e peças são sempre encontradas. É um Failsafe na maioria das situações. Você ainda deseja testar totalmente qualquer uso de qualquer programa que tenha removido seus caminhos.
Também é muito útil para as pessoas que digitarem comandos no CMDprompt, mesmo sem um CD, o computador varrerá cada local, até que um programa com esse nome seja encontrado e executado. Ou qualquer outro comando com o mesmo nome :-)

Esse conjunto de caminhos WAS (anchient) limitados a menos que 255 (or260) charachters, que mudaram para 1024 algum tempo atrás, então foi corrigido na era server'03 para lidar com 2048, e supostamente poderia manipular 8096 em alguns sistemas, mesmo há muito tempo.

As limitações reais descobertas hoje em dia pelas pessoas, estão no CMDprompt, que tem um limite no comprimento da cadeia de comandos, que inclui a expansão das variáveis e dos caminhos.

link aqui Microsoft diz:

"The maximum size of a user-defined environment variable is 32,767 characters. There is no technical limitation on the size of the environment block. However, there are practical limits depending on the mechanism used to access the block. For example, a batch file cannot set a variable that is longer than the maximum command line length."

Naquele local ^ eles apontam para o local do registro que contém os caminhos do sistema HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment Deve ler o restante dele lá.

O CMDprompt e a limitação do lote são 2048 caracteres, uma vez expandidos, e é dito que é 4x para os sistemas mais novos (precisa de citação porque as pessoas não estão vendo isso)

Veja também o link , que discute o prompt de comando e o tamanho do lote dos sistemas mais antigos.

Para garantir que as entradas estejam corretas, o wiki tem o seguinte: link

%PATH% This variable contains a semicolon-delimited (do not put spaces in between) list of directories in which the command interpreter will search for an executable file that matches the given command. Environment variables that represent paths may be nested within the PATH variable but only at one level of indirection. If this subpath environment variable itself contains an environment variable representing a path, PATH will not expand properly in the variable substitution.

Ter todos os caminhos extras para lá diminui um pouco as coisas, porque é forçado a procurar em todos esses lugares antes que desista. Usando caminhos completos sempre que os itens do arquivo de chamada forem sempre mais rápidos, mesmo quando estiver em lotes ou usando o CMDprompt.

O uso de antigas convenções DOSlike 8.3 é uma maneira de reduzir o tamanho. Esse link Batch funciona bem. Certifique-se (novamente) de fazer o backup da string original. Veja também as outras soluções possíveis nessa questão.

Aqui está a minha aparência, tem sido pior.
% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Arquivos de Programas (x86) \ QuickTime \ QTSystem \

Eu jogaria fora quicktime em um piscar de olhos, e os programas da AMD colocaram um caminho estendido lá antes, jogaram, Adobee tinha um, nenhum deles importava para os métodos padrão de atalho / ícone da GUI. Muitas coisas podem ser removidas e, em seguida, testar todas as funções. Se você acessar as coisas digitando o prompt do CMD, a remoção desses caminhos não funcionará.

    
por 22.08.2013 / 04:13
9

Eu tenho várias variáveis de ambiente relacionadas ao desenvolvimento de software no meu caminho, todas importantes.

Acima da solução não funcionaria para mim, então pedi junções de diretório :

  • Selecione alguns dos caminhos mais longos em meu PATH (como C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\VSShell\Common7\IDE\ )
  • Crie uma pasta pequena para armazenar minhas junções: c: \ d \
  • Crie junções curtas para caminhos longos:

mklink /j c:\d\sql "C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\VSShell\Common7\IDE\"

Fazer isso em 15 caminhos reduziu meu PATH de 2045 para 1285 caracteres.

Pode ser um problema quando você finalmente desinstalar o material da sua máquina, pois as junções permanecerão no caminho e você terá que limpá-las manualmente.

    
por 04.02.2015 / 14:47
1

Enquanto o máximo permitido no caminho é muito maior, descobri em respostas autoritárias do Stack Overflow sobre esse tópico (e referências da Microsoft) que afirmam que um valor máximo de 2048 bytes expandido funcionará , e qualquer coisa mais longa do que isso causará problemas. Por "expandido", quero dizer que quaisquer variáveis denotadas com% delimitadores terão seus valores inseridos para se tornar o valor expandido, e o comprimento total expandido não deve exceder 2048 bytes. Tenho notado que os tipos de problemas que causam (como no Windows 7) são:

  • Não reconhece caminhos no final do valor
  • A instalação de software ou patches que modificam o valor PATH faz com que o valor de tempo de execução se torne NULL, causando todos os tipos de problemas executando o Windows, assim como todos os ícones do Menu Iniciar, Área de Trabalho e Barra de Tarefas perdem suas imagens e um prompt de comando simples Comandos como "ping" ou "ipconfig" show command erros não reconhecidos
  • Programas de aplicativos que dependem dos valores do PATH falham

Pessoalmente, recomendo outros sistemas operacionais além do Windows, mas se você estiver preso a ele, terá que passar horas removendo entradas de caminho, testando para garantir que ele não quebre nada e diminua o valor do caminho para 2048 bytes.

    
por 22.07.2015 / 17:24