Eu tenho um diretório na minha pasta pessoal na qual coloco o software de linha de comando (CMD_Software). Coloquei cada pedaço de software em seu próprio diretório no CMD_Software para evitar confusão.
Eu gostaria de fazer uma única entrada na minha variável PATH que permita o acesso ao CMD_Software e a todos os diretórios que ela contém na linha de comando.
Eu tentei, C:\Users\myuser\CMD_Software\*
mas isso não fez nada. Foi nesse ponto que fiquei sem ideias.
Observe que não estou tentando definir um novo caminho enquanto estiver no terminal. Estou tentando definir um novo caminho nas "Variáveis de ambiente" disponíveis na guia "Avançado" das Propriedades do sistema.
windows
windows-8
command-line
environment-variables
Landon Brainard
fonte
fonte
Respostas:
A variável PATH não suporta caracteres curinga ou recursão. Isso é por design.
Existem duas soluções possíveis que eu usei na ocasião:
Crie um diretório com arquivos em lote simples e adicione esse diretório ao PATH. Cada arquivo em lote pode iniciar o programa que você deseja, por exemplo:
A primeira linha é um comentário, a segunda começa com
@
para evitar mostrar o comando que está sendo executado e%*
é usada para passar qualquer argumento de linha de comando para o EXE.Adicione aliases ao CMD.EXE:
Isso se traduz essencialmente
CMD_Software
no prompt de comando para tudo após o sinal de igual. O$*
é substituído pelos argumentos fornecidos.Prefiro a segunda abordagem, porque você pode agrupar todos os aliases em um único arquivo (consulte a opção "/ MACROFILE" em DOSKEY /?) E executá-la automaticamente sempre que o interpretador de comandos começar a usar uma configuração de registro (consulte a chave "Execução automática" em CMD /?).
Uma desvantagem do segundo método é que os aliases funcionam apenas no início de uma linha de comando. Isso pode ser um problema se você deseja encadear comandos. Por exemplo,
CLS & CMD_Software
não funcionará, a menos que você coloque o alias em uma linha separada usando parênteses:Sempre que isso se torna um problema, eu apenas recorro à abordagem de arquivos em lote.
fonte
É isso que eu uso para corrigir o problema. Copie esse script abaixo e salve-o
FIXPATH.BAT
na pasta que você adicionou àPATH
variável de ambiente. Por exemplo:Agora, sempre que você precisar executar um programa em uma subpasta, digamos ...
Execute
fixpath
primeiro e insira o comando (por exemplo,grep
ouexiftool
) da seguinte forma:FIXPATH.BAT
Graças à resposta de @ VonC
fonte
Coloque um subdiretório "programlinks \" em ... \ CMD_Software (ou em qualquer lugar, na verdade) e preencha-o com links simbólicos ou hardlinks para cada executável que você deseja acessar. Então, uma única entrada no PATH para ... \ programlinks será suficiente.
fonte
Se você não se deixar levar pela ideia, poderá copiar suas ferramentas de linha de comando para o diretório Windows \ System32. Então você pode executá-los em qualquer diretório, como ping ou ipconfig.
editar
Depois de alguns ajustes, isso é possível. Você só precisa usar ponto e vírgula para delimitar seus diretórios. Digamos que você tenha um programa em "folder1" e "folder2". Você escreveria seu caminho assim:
Em seguida, você pode chamar um programa em qualquer diretório diretamente da linha de comando. AFAIK não há outra maneira de fazer isso com apenas uma linha.
Informações de suporte: http://en.wikipedia.org/wiki/PATH_(variable)
fonte
program.bat
como%PATH%\program.bat
é mais ou menos o oposto do que PATH foi projetado.