Agregar un .exe a la ruta predeterminada sin agregar el directorio

22

Por ejemplo, quiero agregar notepad ++ a mi RUTA, sin embargo, el directorio también contiene uninstall.exey varios otros archivos / ejecutables y no quiero que "contaminen" mi ruta. ¿Puedo agregar el uno notepad++.exe?

Louis Rhys
fuente

Respuestas:

17

Puede agregar un script por lotes a un directorio que está en su ruta, que se parece a esto:

@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

Puedes nombrarlo notepad++.cmd. La sección de ayuda le permite obtener fácilmente información sobre los conmutadores.

Puse todos esos scripts y programas de línea de comandos en un directorio que se agrega a %PATH%: C:\Users\Public\Command\ ... y ese directorio se sincroniza con todas las computadoras y máquinas virtuales.

paradroid
fuente
8

Cree un archivo por lotes con contenido como el siguiente:

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

Esto debe guardarse como un .batarchivo, como git.baten un directorio que está en su PATH.

@suprime la repetición del comando al shell de invocación. Las citas ""evitan que los espacios en blanco se interpreten como delimitadores de argumentos. %*pega cualquier argumento al archivo por lotes, al ejecutable citado en su lugar.

Ahora puede invocar el ejecutable utilizando la parte del nombre del archivo por lotes anterior .bat. En mi caso git,.

Referencias

Matt Joiner
fuente
Para muchos programas que colgarán CMD hasta que lo cierre. Debe usar startpara evitar eso, como se muestra en mi respuesta.
paradroid
@paradroid: Gracias, pero es un comportamiento terminal estándar permanecer conectado al padre a menos que se le solicite. El usuario debe hacer en start gitlugar de hacerlo por ellos. La secuencia de comandos por lotes funcionaría mejor si execentrara en el proceso solicitado, pero esto no es posible en Windows: serverfault.com/questions/315077/… . Podría anteponer callpero sería pedante y sobre todo inútil.
Matt Joiner
3

Arrastre un acceso directo a notepad++.exepara C:\Windows\System32.


Alternativamente, como lo sugiere @Synetech inc., Puede colocar sus accesos directos en un directorio separado (por ejemplo C:\Shortcuts), y luego agregar ese directorio a %PATH%:

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

Como indican algunos de los comentarios, esto solo funciona desde el cuadro de diálogo Ejecutar. Para que los accesos directos se inicien desde un símbolo del sistema, debe agregar la extensión de acceso directo (.LNK) a su variable de entorno PATHEXT.

setx PATHEXT %pathext%;.LNK

Referencias

¿Cómo puedo iniciar aplicaciones fácilmente con el cuadro de diálogo Ejecutar?

Mateen Ulhaq
fuente
1
Esta es la solución preferida (a diferencia de un archivo por lotes); cree un acceso directo a él en un directorio (diferente) en la ruta; ¡no contamine los directorios de Windows! Tengo una carpeta específicamente para este propósito llamada Shortcuts.
Synetech
1
Esa es la sintaxis incorrecta para setx. No utiliza un signo de igual, y IIRC, debe encerrar la ruta completa entre comillas, si la corriente %PATH%tiene espacios (lo cual será).
Paradroid
¿Y no SETXutiliza tildes para variables en lugar de porcentajes para evitar expandirlas? Sé que alguna herramienta de configuración de env-var ...
Synetech
2
Esto no funciona Por defecto (estoy arrastrando git.exe), "git - Shortcut", renombrando esto a combinaciones de "git.exe", "git", "git.cmd", etc. no tiene ningún efecto. No reconocerá el atajo.
Matt Joiner el
3
Esto solo funciona cuando se invoca desde el Run Ascuadro de diálogo, no funciona desde el símbolo del sistema.
Matt Joiner el
1

Simplemente cree un enlace simbólico utilizando mklinken una carpeta en la ruta.

por ejemplo (en el símbolo del sistema del administrador)

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

La clave de registro de App Paths hace exactamente esto: configure la ruta de acceso a notepad ++. Exe en "\ program files \ ..." y podrá iniciarla desde Start-Run, cmd, ... como cualquier ejecutable desde un directorio en% PATH%.

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

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

patraulea
fuente
Esto no lo hará ejecutable desde cmd - solo desde start-run, o en cmd debe prefijarlo con "start" como en "start myapp.exe"
Tahir Hassan
El símbolo del sistema esto, de acuerdo, carece de la capacidad de reconocer esta variable. PowerShell lo reconoce. Esta solución, lo que es más importante, solo se aplica al directorio y, por lo tanto, fuera del tema.
Todd Partridge
0

No me gustó ninguna de las soluciones presentadas aquí, así que probé algo más.

  1. Instalar extensión de shell de enlace (más información aquí )

  2. Cree una carpeta en algún lugar para almacenar todos sus accesos directos como Marteen sugiere y agréguelo a su %PATH%. Creé C:\Shortcutsy utilicé Rapid Environment Editor para agregarlo a mi RUTA.

  3. Haga clic con el botón derecho en el archivo que desea agregar a su ruta (en el Explorador) y haga clic en "Elegir fuente de enlace"

  4. Haga clic derecho en la carpeta que acaba de crear y haga clic Drop As > Symbolink Link.

  5. Cambie el nombre del enlace del símbolo si lo desea.

Eso es. Ahora debería poder acceder a su programa a través de la línea de comandos. Si acaba de agregar la nueva carpeta a su RUTA, deberá reiniciar cmd.exe o Cmder o ConEmu o lo que sea que esté utilizando. Después de eso, puede agregar nuevos programas sin reiniciar.

mpen
fuente