"Registre" um .exe para que você possa executá-lo em qualquer linha de comando no Windows
152
Como você pode tornar um arquivo .exe acessível em qualquer local na janela de comando do Windows? Existe alguma entrada do registro que precisa ser inserida?
Essa resposta é quase sempre a errada. No mínimo, é incompleto. Especificamente, essa abordagem funciona bem para INSTALAR, mas não é boa para desinstalar. A maioria dos desinstaladores eliminará toda a variável PATH ao desinstalar o aplicativo associado a isso. Portanto, se você escrever uma ação de instalação para adicionar o diretório ao PATH, faça uma ação de instalação PERSONALIZADA que não seja desinstalada automaticamente pelo pacote de remoção genérico. Em seguida, combine essa etapa de instalação personalizada com uma etapa de desinstalação que remove apenas o diretório da variável PATH.
Kim Gentes
21
@KimGentes bem, isso é um problema com o desinstalador. Um bom desinstalador deve arrumar bem. Não faz a resposta errada.
ChrisF
3
Eu concordo .. é um problema com o instalador. Mas como todos os instaladores fazem isso com variáveis (eles não analisam nem extraem partes das entradas do registro ou VARIÁVEIS ENV), parece prudente explicá-lo. Se seguirmos as instruções exatamente, elas sempre encontrarão esse problema, o que significa que a solução provavelmente sempre deve incluir essa ressalva. Nenhum pacote de instalação cuida da instalação e desinstalação de seções das entradas do Registro ou variáveis ENV que eu conheço, embora, por favor, deixe-me saber se há algumas que eu não conheço.
Kim Gentes
Em vez de "instalar" o ambiente, use um arquivo em lotes com o comando SETX: SETX PATH "C: \ Windows" ----- e pronto.
21415 Stavm
3
O SETX também é perigoso porque possui um limite de comprimento muito menor que a própria variável PATH e truncará em vez de falhar.
Ben Voigt
48
Você pode adicionar a seguinte chave do Registro :
Sherdim @: eu duvido disso. No entanto, ele sempre funcionou com o startcomando, para que você possa digitar start myexeum prompt do cmd.exe. Mas por myexesi só não deve funcionar, eu acho (a menos que você esteja no diretório myexeou esse diretório esteja na PATHvariável de ambiente).
Andreas Rejbrand
Simplesmente criei um myprog.cmdarquivo pequeno com o seguinte conteúdo: @START myprog.exe %*Isso chama a App Pathsentrada myprog.exee passa todos os argumentos de comando. O arquivo deve ser criado em algum lugar acessível emPATH
Stavr00
1
@sherdim @ andreas-rejbrand Posso confirmar que isso não funciona no Windows 10 se o myexe não estiver PATH. start myexefunciona com essa alteração do registro, sem adicionar o myexe ao PATH.
Davenpcj
@davenpcj: De fato. A chave do registro que mencionei está relacionada ao shell do Windows, não ao prompt de comando. Assim start myappfunciona, assim como o Win + R myapp, mas não é simples myappno cmd.exe.
Andreas Rejbrand
1
Essa chave funciona para ser executada no Explorer.exe, se você tentar no CMD.exe, ela não foi encontrada.
prampe 17/04
41
Você deve colocar .exeo caminho do seu arquivo no caminho variável do ambiente. Vá para "Meu computador -> propriedades -> avançado -> variáveis de ambiente -> Caminho" e edite o caminho adicionando .exeo diretório do diretório.
Outra solução que eu pessoalmente prefiro é usar o RapidEE para uma edição de variáveis mais suave.
Esta é a única resposta que me ajudou. Eu acrescentaria que "reiniciar o sistema" não é necessário. Basta reiniciar o cmd seria suficiente.
Joffrey Baratheon
Com WinKey + R e digite SystemPropertiesAdvanced
prampe 17/04
29
Em vez de colocar o executável em um diretório no caminho, você deve criar um arquivo em lotes em um diretório no caminho que inicia o programa. Dessa forma, você não separa o executável dos arquivos de suporte e não adiciona outras coisas no mesmo diretório ao caminho sem intenção.
Esse arquivo em lote pode se parecer com o seguinte:
@echo off
start "" "C:\Program Files (x86)\Software\software.exe" %*
Você se importa em adicionar um exemplo de um arquivo em lote - seria bom?
Petermeissner
Eu sinto que esta é a melhor opção, não queria adicionar muitas coisas à variável de caminho. Vou editar neste exemplo de resposta desse arquivo em lotes.
Dino
1
O problema que estou tendo com isso é que ele inicia um novo shell. Eu estou tentando obter um binário cygwin para lançamento no mesmo shell, o que o faz se eu referenciá-lo diretamente comoC:\cygwin\bin\grep.exe
Johann
4
@ Johann: Retire o start "" e apenas comece com o caminho para o executável. Além disso, para uso no cygwin, você pode querer um script de shell do cygwin ou um link simbólico. Ou um apelido de shell.
Ben Voigt
Perfeito, obrigado! Concordo com suas outras opções para o cygwin, mas, neste caso, estou tentando usar um binário cygwin do powershell.
Johann
5
é incrível que não exista uma solução simples para uma tarefa tão simples no Windows, criei esse pequeno script cmd que você pode usar para definir aliases no Windows (as instruções estão no próprio cabeçalho do arquivo):
Agora posso simplesmente digitar e usar a azcopypartir de qualquer local, a partir de qualquer prompt de comando do shell inc, powershell, git bash etc.
Se você deseja executá-lo em arquivos cmd.exe ou em lote, é necessário adicionar o diretório em que .exe está na variável% path% ( Sistema ou Usuário )
Se você deseja executá-lo na caixa de diálogo Executar (Win + R) ou em qualquer aplicativo que chama ShellExecute , basta adicionar seu exe à chave de caminhos do aplicativo (isso é menos propenso a erros durante a instalação / desinstalação e também não causa confusão. a variável path)
Você também pode adicionar permanentemente (após a reinicialização) à variável Path desta maneira:
Clique com o botão direito do mouse em Meu computador -> Clique em Propriedades -> Clique em Configurações avançadas do sistema -> Clique em Variáveis de ambiente
Em vez de colocar executáveis personalizados C:\Windows, deve-se adicionar um diretório personalizado à PATHvariável de ambiente.
Roland Illig 29/10/16
1
Aliases simples do tipo bash no Windows
Para obter aliases globais do tipo bash no Windows para aplicativos não adicionados automaticamente ao caminho sem adicionar manualmente cada um ao caminho, aqui está a solução mais limpa que eu criei que faz a menor quantidade de alterações no sistema e tem o máximo de flexibilidade para personalização posterior:
"Instalar" o caminho do seu alias
mkdir c:\aliases
setx PATH "c:\aliases;%PATH%"
Adicione seu alias
Abrir em uma nova janela do shell
Para iniciar C:\path to\my program.exe, passando todos os argumentos, abrindo-o em uma nova janela, crie um c:\aliases\my program.batarquivo com o seguinte conteúdo (consulte Comando Iniciar do NT para obter detalhes sobre o comando start):
@echo off
start "myprogram" /D "C:\path to\" /W "myprogram.exe" %*
Janela Executar na Shell Atual
Para começar C:\path to\my program.exe, passando todos os argumentos, mas executando-o na mesma janela (mais parecido com o funcionamento do bash), crie um c:\aliases\my program.batarquivo com o seguinte conteúdo:
@echo off
pushd "C:\path to\"
"my program.exe" %*
popd
Executar na janela atual do shell 2
Se você não precisar que o aplicativo altere o diretório de trabalho atual para operar, basta adicionar um link simbólico ao executável dentro da pasta de aliases:
cd c:\aliases\
mklink "my program.exe" "c:\path to\my program.exe"
Outra maneira poderia ser através da adição de .LNK seu $ PATHEX. Em seguida, basta criar um atalho para o seu executável (por exemplo: yourshortcut.lnk) e colocá-lo em qualquer um dos diretórios listados em $ PATH.
AVISO NOTA: Saiba que qualquer arquivo .lnk localizado em qualquer diretório listado em seu $ PATH agora também está "PATH'ed". Por esse motivo, eu preferiria o método de arquivo em lotes mencionado anteriormente para esse método.
Se alguém estiver procurando por isso depois de mim, aqui está uma maneira muito fácil de adicionar seu caminho.
Envie o caminho para um arquivo como mostra a imagem, copie e cole-o e adicione o caminho específico no final com um ponto e vírgula anterior ao novo caminho. Pode ser necessário adaptar antes do Windows 7, mas pelo menos é um ponto de partida fácil.
A parte essencial de uma resposta deve estar em um texto, não em uma captura de tela externa.
Roland Illig 29/10/19
-3
A melhor maneira de fazer isso é instalar o arquivo .exe na pasta windows / system32. Dessa forma, você pode executá-lo em qualquer local. Este é o mesmo lugar em que o ping do .exe pode ser encontrado
Respostas:
Você precisa garantir que o exe esteja em uma pasta que esteja na
PATH
variável de ambiente.Você pode fazer isso instalando-o em uma pasta que já está no
PATH
ou adicionando sua pasta aoPATH
.Você pode fazer com que o instalador faça isso - mas será necessário reiniciar a máquina para garantir que ela seja retirada.
fonte
Você pode adicionar a seguinte chave do Registro :
Nesta chave, adicione o valor padrão da string que contém o caminho para o arquivo exe.
fonte
start
comando, para que você possa digitarstart myexe
um prompt do cmd.exe. Mas pormyexe
si só não deve funcionar, eu acho (a menos que você esteja no diretóriomyexe
ou esse diretório esteja naPATH
variável de ambiente).myprog.cmd
arquivo pequeno com o seguinte conteúdo:@START myprog.exe %*
Isso chama aApp Paths
entradamyprog.exe
e passa todos os argumentos de comando. O arquivo deve ser criado em algum lugar acessível emPATH
PATH
.start myexe
funciona com essa alteração do registro, sem adicionar o myexe aoPATH
.start myapp
funciona, assim como o Win + Rmyapp
, mas não é simplesmyapp
no cmd.exe.Você deve colocar
.exe
o caminho do seu arquivo no caminho variável do ambiente. Vá para "Meu computador -> propriedades -> avançado -> variáveis de ambiente -> Caminho" e edite o caminho adicionando.exe
o diretório do diretório.Outra solução que eu pessoalmente prefiro é usar o RapidEE para uma edição de variáveis mais suave.
fonte
Windows 10, 8.1, 8
Abra o menu Iniciar,
Edit environment variables
Edit the system environment variables
Environment variables...
botãoSystem Variables
caixa findpath
variableEdit
New
.exe
oubatch
( Diretório significa excluir o nome do arquivo do caminho)Ok
em todas as janelas abertas ereinicie o sistema,reinicie o prompt de comando .fonte
Em vez de colocar o executável em um diretório no caminho, você deve criar um arquivo em lotes em um diretório no caminho que inicia o programa. Dessa forma, você não separa o executável dos arquivos de suporte e não adiciona outras coisas no mesmo diretório ao caminho sem intenção.
Esse arquivo em lote pode se parecer com o seguinte:
fonte
C:\cygwin\bin\grep.exe
start ""
e apenas comece com o caminho para o executável. Além disso, para uso no cygwin, você pode querer um script de shell do cygwin ou um link simbólico. Ou um apelido de shell.é incrível que não exista uma solução simples para uma tarefa tão simples no Windows, criei esse pequeno script cmd que você pode usar para definir aliases no Windows (as instruções estão no próprio cabeçalho do arquivo):
https://gist.github.com/benjamine/5992592
essa é praticamente a mesma abordagem usada por ferramentas como NPM ou ruby gems para registrar comandos globais.
fonte
Digamos que meu exe é C: \ Arquivos de Programas \ AzCopy \ azcopy.exe
Comando / CMD / Lote
PowerShell
Agora posso simplesmente digitar e usar a
azcopy
partir de qualquer local, a partir de qualquer prompt de comando do shell inc, powershell, git bash etc.fonte
fonte
Você também pode adicionar permanentemente (após a reinicialização) à variável Path desta maneira:
Clique com o botão direito do mouse em Meu computador -> Clique em Propriedades -> Clique em Configurações avançadas do sistema -> Clique em Variáveis de ambiente
Referência: Alterar variáveis de sistema / usuário
fonte
Coloque-o no diretório c: \ windows ou adicione-o ao "caminho" nas configurações do ambiente (windows-break - tab advanced)
cumprimentos, // t
fonte
C:\Windows
, deve-se adicionar um diretório personalizado àPATH
variável de ambiente.Use um arquivo em lotes de 1 linha em sua instalação:
execute o arquivo bat
Agora coloque seu .exe em c: \ windows e pronto.
você pode digitar o 'exename' na linha de comando e ele será executado.
fonte
C:\Windows
, deve-se adicionar um diretório personalizado àPATH
variável de ambiente.Aliases simples do tipo bash no Windows
Para obter aliases globais do tipo bash no Windows para aplicativos não adicionados automaticamente ao caminho sem adicionar manualmente cada um ao caminho, aqui está a solução mais limpa que eu criei que faz a menor quantidade de alterações no sistema e tem o máximo de flexibilidade para personalização posterior:
"Instalar" o caminho do seu alias
Adicione seu alias
Abrir em uma nova janela do shell
Para iniciar
C:\path to\my program.exe
, passando todos os argumentos, abrindo-o em uma nova janela, crie umc:\aliases\my program.bat
arquivo com o seguinte conteúdo (consulte Comando Iniciar do NT para obter detalhes sobre o comando start):Janela Executar na Shell Atual
Para começar
C:\path to\my program.exe
, passando todos os argumentos, mas executando-o na mesma janela (mais parecido com o funcionamento do bash), crie umc:\aliases\my program.bat
arquivo com o seguinte conteúdo:Executar na janela atual do shell 2
Se você não precisar que o aplicativo altere o diretório de trabalho atual para operar, basta adicionar um link simbólico ao executável dentro da pasta de aliases:
fonte
Adicione ao PATH, etapas abaixo (Windows 10):
fonte
Outra maneira poderia ser através da adição de
.LNK
seu $ PATHEX. Em seguida, basta criar um atalho para o seu executável (por exemplo: yourshortcut.lnk) e colocá-lo em qualquer um dos diretórios listados em $ PATH.AVISO NOTA: Saiba que qualquer arquivo .lnk localizado em qualquer diretório listado em seu $ PATH agora também está "PATH'ed". Por esse motivo, eu preferiria o método de arquivo em lotes mencionado anteriormente para esse método.
fonte
Se alguém estiver procurando por isso depois de mim, aqui está uma maneira muito fácil de adicionar seu caminho.
Envie o caminho para um arquivo como mostra a imagem, copie e cole-o e adicione o caminho específico no final com um ponto e vírgula anterior ao novo caminho. Pode ser necessário adaptar antes do Windows 7, mas pelo menos é um ponto de partida fácil.
Imagem do prompt de comando para exportar PATH para arquivo de texto
fonte
A melhor maneira de fazer isso é instalar o arquivo .exe na pasta windows / system32. Dessa forma, você pode executá-lo em qualquer local. Este é o mesmo lugar em que o ping do .exe pode ser encontrado
fonte
C:\Windows
, deve-se adicionar um diretório personalizado àPATH
variável de ambiente.