Adicionando um .exe ao caminho padrão sem adicionar o diretório

22

Por exemplo, quero adicionar o bloco de notas ++ ao meu PATH, no entanto, o diretório também contém uninstall.exevários outros arquivos / executáveis ​​e não quero que eles "poluam" meu caminho. Posso apenas adicionar um notepad++.exe?

Louis Rhys
fonte

Respostas:

17

Você pode adicionar um script em lote a um diretório que esteja no seu caminho, parecido com este:

@echo off

:: Notepad++ execution

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP
goto :START

:START
start "" /i "%ProgramFiles(x86)%\notepad++\notepad++.exe" %*
goto :EOF

:HELP
echo -------------------------------
echo Notepad++ Command Argument Help
echo -------------------------------
echo Usage :
echo.
echo notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage] [-nLineNumber] [-cColumnNumber] [-xPos] [-yPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [fullFilePathName]
echo.
echo     --help : This help message
echo     -multiInst : Launch another Notepad++ instance
echo     -noPlugins : Launch Notepad++ without loading any plugin
echo     -l : Launch Notepad++ by applying indicated language to the file to open
echo     -n : Launch Notepad++ by scrolling indicated line on the file to open
echo     -c : Launch Notepad++ on scrolling indicated column on the file to open
echo     -x : Launch Notepad++ by indicating its left side position on the screen
echo     -y : Launch Notepad++ by indicating its top position on the screen
echo     -nosession : Launch Notepad++ without any session
echo     -notabbar : Launch Notepad++ without tabbar
echo     -ro : Launch Notepad++ and make the file to open read only
echo     -systemtray : Launch Notepad++ directly in system tray
echo     -loadingTime : Display Notepad++ loading time
echo     -alwaysOnTop : Make Notepad++ always on top
echo     fullFilePathName : file name to open (absolute or relative path name)
echo.
goto :EOF

:EOF

Você pode nomear notepad++.cmd. A seção de ajuda permite que você obtenha facilmente informações sobre os comutadores.

Coloquei todos esses scripts e programas de linha de comando em um diretório que é adicionado a %PATH%: C:\Users\Public\Command\ ... e esse diretório é sincronizado com todos os computadores e máquinas virtuais.

paradroid
fonte
8

Crie um arquivo em lotes com conteúdo como o seguinte:

@"C:\Program Files\Git\bin\git.exe" %*

Isso deve ser salvo como um .batarquivo, como git.batem um diretório que esteja no seu PATH.

@suprime o eco do comando no shell de chamada. As citações ""impedem que o espaço em branco seja interpretado como delimitador de argumentos. %*cola todos os argumentos no arquivo em lotes, no executável entre aspas.

Agora você pode chamar o executável usando a parte do nome do arquivo em lotes antes .bat. No meu caso git.

Referências:

Matt Joiner
fonte
Para muitos programas que desligam o CMD até você fechá-lo. Você precisa usar startpara evitar isso, como mostrado na minha resposta.
Paradroid
@paradroid: Obrigado, mas é um comportamento padrão do terminal permanecer ligado ao pai, a menos que solicitado. O usuário deve fazer em start gitvez de fazê-lo por eles. O script em lote funcionaria melhor se execdsse no processo solicitado, mas isso não é possível no Windows: serverfault.com/questions/315077/… . Eu poderia acrescentar, callmas seria pedante e quase inútil.
Matt Joiner
3

Arraste um atalho notepad++.exepara C:\Windows\System32.


Como alternativa, conforme sugerido por @Synetech inc., Você pode colocar seus atalhos em um diretório separado (por exemplo C:\Shortcuts) e, em seguida, adicionar esse diretório a %PATH%:

setx PATH "%PATH%;C:\Shortcuts"

Como alguns dos comentários indicam, isso funciona apenas na caixa de diálogo Executar. Para que os atalhos sejam iniciados em um prompt de comando, você precisa adicionar a extensão de atalho (.LNK) à sua variável de ambiente PATHEXT.

setx PATHEXT %pathext%;.LNK

Referências:

Como posso iniciar aplicativos facilmente com a caixa de diálogo Executar?

Mateen Ulhaq
fonte
1
Esta é a solução preferida (ao contrário de um arquivo em lotes); crie um atalho para ele em um diretório (diferente) no caminho - não polua os diretórios do Windows! Eu tenho uma pasta especificamente para esse fim chamada Shortcuts.
Synetech 25/05
1
Essa é a sintaxe errada para setx. Você não usa um sinal de igual e, como IIRC, precisa colocar todo o caminho entre aspas, se a corrente %PATH%tiver espaços (o que será).
Paradroid 25/05
E não SETXusa tildes para variáveis ​​em vez de porcentagens para evitar expandi-las? Eu sei que alguma ferramenta de configuração env-var faz ...
Synetech
2
Isso não funciona. Por padrão (estou arrastando o git.exe), "git - Atalho", renomeá-lo para combinações de "git.exe", "git", "git.cmd" etc. não tem efeito. Não reconhecerá o atalho.
9788103Data de
3
Isso funciona apenas ao chamar a partir da Run Ascaixa de diálogo, não funciona no prompt de comando.
Matt Joiner
1

Basta criar um link simbólico usando mklinkuma pasta no caminho.

por exemplo (no prompt de comando do administrador)

mklink "C:\Users\Me\Documents\Paths\np.exe" "C:\Program Files (x86)\Notepad++\notepad++.exe"
Luigi Plinge
fonte
0

A chave de registro App Paths faz exatamente isso: defina o caminho para o bloco de notas ++. Exe como "\ program files \ ..." e você poderá iniciá-lo a partir do Start-Run, cmd, ... assim como qualquer executável de um diretório em% PATH%.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

Referência: /programming/4822400/register-an-exe-so-you-can-run-it-from-any-command-line-in-windows

patraulea
fonte
Isso não o tornará executável no cmd - apenas no start-run, ou no cmd você precisará prefixá-lo com "start" como em "start myapp.exe"
Tahir Hassan
O prompt de comando, concordou, carece da capacidade de reconhecer essa variável. O PowerShell reconhece isso. Esta solução, mais importante, aplica-se apenas ao diretório e, portanto, ao tópico.
Todd Partridge
0

Não gostei de nenhuma das soluções apresentadas aqui, então tentei outra coisa.

  1. Instale a extensão do shell de link (mais informações aqui )

  2. Crie uma pasta em algum lugar para armazenar todos os seus atalhos, como sugere Marteen, e adicione-os ao seu %PATH%. Criei C:\Shortcutse usei o Rapid Environment Editor para adicioná-lo ao meu PATH.

  3. Clique com o botão direito do mouse no arquivo que você deseja adicionar ao seu caminho (no Explorer) e clique em "Selecionar fonte do link"

  4. Clique com o botão direito do mouse na pasta que você acabou de criar e clique em Drop As > Symbolink Link.

  5. Renomeie o link do simbolo, se desejar.

É isso aí. Agora você deve acessar seu programa via linha de comando. Se você acabou de adicionar a nova pasta ao PATH, precisará reiniciar o cmd.exe ou o Cmder ou o ConEmu ou o que for que você usar. Depois disso, você pode adicionar novos programas sem reiniciar.

mpen
fonte