A variável PATH não suporta curingas ou recursão. Isso é por design.
Existem duas soluções possíveis que usei ocasionalmente:
-
Crie um diretório com arquivos em lote simples e adicione esse diretório ao PATH. Cada arquivo em lote pode iniciar o programa desejado, por exemplo:
:: CMD_Software.bat: start CMD_Software @C:\Users\myuser\CMD_Software\CMD_Software.exe %*
A primeira linha é um comentário, a segunda começa com
@
para evitar mostrar o comando sendo executado e%*
é usado para passar qualquer argumento de linha de comando para o EXE. -
Adicione aliases ao arquivo CMD.EXE:
DOSKEY CMD_Software="C:\Users\myuser\CMD_Software\CMD_Software.exe" $*
Isso essencialmente traduz
CMD_Software
no prompt de comando para tudo depois do sinal de igual. O$*
é substituído pelos argumentos fornecidos.
Eu prefiro a segunda abordagem, porque você pode agrupar todos os aliases em um único arquivo (ver a opção "/ MACROFILE" no DOSKEY /?) e executá-la automaticamente sempre que o interpretador de comandos começar a usar uma configuração do registro (consulte "AutoRun "chave no 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ê quiser encadear comandos. Por exemplo, CLS & CMD_Software
não funcionará, a menos que você coloque o alias em uma linha separada usando parênteses:
CLS & (
CMD_Software
)
Sempre que isso se torna um problema, acabo recorrendo à abordagem de arquivo de lote.