"Registre" un .exe para que pueda ejecutarlo desde cualquier línea de comandos en Windows

152

¿Cómo puede hacer que un archivo .exe sea accesible desde cualquier ubicación en la ventana de comandos de Windows? ¿Hay alguna entrada de registro que deba ingresarse?

HK1
fuente
66
superuser.com
David Heffernan

Respuestas:

97

Debe asegurarse de que el archivo exe esté en una carpeta que esté en la PATHvariable de entorno.

Puede hacerlo instalándolo en una carpeta que ya está en el PATHo agregando su carpeta al PATH.

Puede hacer que su instalador haga esto, pero necesitará reiniciar la máquina para asegurarse de que se recupere.

ChrisF
fuente
Esta respuesta es casi siempre la incorrecta. Por lo menos está incompleto. Específicamente, este enfoque funciona bien para INSTALAR, pero no es bueno para desinstalar. La mayoría de los desinstaladores eliminarán la variable PATH completa al desinstalar la aplicación asociada a esto. Por lo tanto, si escribe una acción de instalación para agregar el directorio a la RUTA, debe convertirla en una acción de instalación PERSONALIZADA que el paquete genérico de eliminación no desinstala automáticamente. Luego, combine ese paso de instalación personalizada con un paso de desinstalación que elimine solo su directorio de la variable PATH.
Kim Gentes
21
@KimGentes bueno, eso es un problema con el desinstalador. Un buen desinstalador debería ordenarlo bien. No hace que la respuesta sea incorrecta.
ChrisF
3
Estoy de acuerdo ... es un problema con el instalador. Pero dado que todos los instaladores hacen esto a las variables (no analizan y extraen porciones de entradas de registro o ENV VARIABLES), parece prudente explicarlo. Si uno sigue exactamente las instrucciones, siempre se encontrará con este problema, lo que significa que la solución probablemente siempre debe incluir esa advertencia. Ningún paquete de instalación se encarga de instalar y desinstalar secciones de entradas de registro o variables ENV que conozco, aunque avíseme si hay algunas que no conozco.
Kim Gentes
En lugar de "instalar" el entorno, use un archivo por lotes con el comando SETX: SETX PATH "C: \ Windows" ----- y ya está.
Stavm
3
SETX también es peligroso porque tiene un límite de longitud mucho más bajo que la propia variable PATH y se truncará en lugar de fallar.
Ben Voigt
48

Puede agregar la siguiente clave de registro :

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\myexe.exe

En esta clave, agregue el valor de cadena predeterminado que contiene la ruta al archivo exe.

Andreas Rejbrand
fuente
1
@ Sherdim: Lo dudo mucho. Sin embargo, siempre ha funcionado con el startcomando, por lo que puede escribir start myexeun indicador cmd.exe. Pero myexesolo no debería funcionar, creo (a menos que esté en el directorio de myexeo ese directorio esté en la PATHvariable de entorno).
Andreas Rejbrand
Simplemente hago un pequeño myprog.cmdarchivo con el siguiente contenido: @START myprog.exe %*Esto invoca la App Pathsentrada myprog.exey pasa todos los argumentos de comando. El archivo debe crearse en algún lugar accesible enPATH
Stavr00
1
@sherdim @ andreas-rejbrand Puedo confirmar que esto no funciona en Windows 10 si myexe no está en PATH. start myexefunciona con este cambio de registro, sin agregar myexe a PATH.
davenpcj
@davenpcj: De hecho. La clave de registro que mencioné está relacionada con el shell de Windows, no con el símbolo del sistema. Así start myappfunciona, así como Win + R myapp, pero no es simple myappen cmd.exe.
Andreas Rejbrand,
1
Esta clave funciona para ejecutarse desde Explorer.exe, si intenta desde CMD.exe no se encuentra.
prampe
41

Tienes que poner .exela ruta de tu archivo en una ruta de entorno variable. Vaya a "Mi computadora -> propiedades -> avanzado -> variables de entorno -> Ruta" y edite la ruta agregando .exeel directorio en la ruta.

Otra solución que prefiero personalmente es usar RapidEE para una edición variable más fluida.

darioo
fuente
39

Windows 10, 8.1, 8

Abrir menú de inicio,

  1. Tipo Edit environment variables
  2. Abre la opcion Edit the system environment variables
  3. Haga clic en el Environment variables...botón
  4. Ahí ves dos cuadros, en el System Variablescuadro encontrar pathvariable
  5. Hacer clic Edit
  6. aparece una ventana, haga clic New
  7. Escriba la ruta del directorio de su archivo .exeo batch( Directorio significa excluir el nombre del archivo de la ruta)
  8. Haga clic Oken todas las ventanas abiertas y reinicie su sistema, reinicie el símbolo del sistema .
AmiNadimi
fuente
44
Esta es la única respuesta que me ayudó. Yo agregaría que "reiniciar el sistema" no es necesario. Simplemente reiniciar el cmd sería suficiente.
Joffrey Baratheon
Con WinKey + R y tipo SystemPropertiesAdvanced
prampe
29

En lugar de poner el ejecutable en un directorio en la ruta, debe crear un archivo por lotes en un directorio en la ruta que inicia el programa. De esta manera, no separa el ejecutable de sus archivos de soporte, y no agrega otras cosas en el mismo directorio a la ruta sin querer.

Tal archivo por lotes puede verse así:

@echo off
start "" "C:\Program Files (x86)\Software\software.exe" %*
Ben Voigt
fuente
1
¿Te importaría agregar un ejemplo de tal archivo por lotes? ¿Sería bueno?
petermeissner
Siento que esta es la mejor opción, no quería agregar demasiadas cosas a la variable de ruta. Editaré en este ejemplo de respuesta de dicho archivo por lotes.
Dino
1
El problema que tengo con esto es que comienza un nuevo shell. Estoy tratando de hacer que un binario cygwin se inicie en el mismo shell, lo que hace si lo hago referencia directa comoC:\cygwin\bin\grep.exe
Johann
44
@Johann: Saca el start "" y simplemente comienza con la ruta al ejecutable. Además, para usar en cygwin, es posible que desee un script de shell cygwin o un enlace simbólico. O un alias de concha.
Ben Voigt
¡Perfecto, gracias! Estoy de acuerdo con sus otras opciones para dentro de cygwin, pero en este caso estoy tratando de usar un binario cygwin de powershell.
Johann
5

Es sorprendente que no haya una solución simple para una tarea tan simple en Windows, creé este pequeño script cmd que puedes usar para definir alias en Windows (las instrucciones están en el encabezado del archivo):

https://gist.github.com/benjamine/5992592

Este es el mismo enfoque utilizado por herramientas como NPM o ruby ​​gems para registrar comandos globales.

Benja
fuente
5

Digamos que mi exe es C: \ Archivos de programa \ AzCopy \ azcopy.exe

Comando / CMD / Lote

SET "PATH=C:\Program Files\AzCopy;%PATH%"

Potencia Shell

$env:path = $env:path + ";C:\Program Files\AzCopy"

Ahora puedo simplemente escribir y usar azcopydesde cualquier ubicación desde cualquier símbolo del sistema de shell inc, powershell, git bash, etc.

Bevan
fuente
3
  • Si desea poder ejecutarlo dentro de cmd.exe o archivos por lotes, debe agregar el directorio en el que se encuentra .exe a la variable% path% ( Sistema o Usuario )
  • Si desea poder ejecutarlo en el cuadro de diálogo Ejecutar (Win + R) o en cualquier aplicación que llame a ShellExecute , es suficiente agregar su exe a la clave de rutas de la aplicación (esto es menos propenso a errores durante la instalación / desinstalación y tampoco desordena arriba de la variable de ruta)
Anders
fuente
2

Póngalo en el directorio c: \ windows o agregue su directorio a la "ruta" en la configuración del entorno (windows-break - pestaña avanzada)

saludos, // t

Teson
fuente
En lugar de colocar ejecutables personalizados en C:\Windows, uno debería agregar un directorio personalizado a la PATHvariable de entorno.
Roland Illig
Depende. Putty.exe que puse en / windows.
Teson
1

Use un archivo por lotes de 1 línea en su instalación:

SETX PATH "C:\Windows"

ejecuta el archivo bat

Ahora coloque su .exe en c: \ windows, y listo.

puede escribir el 'nombre del ex' en la línea de comandos y lo ejecutará.

Stavm
fuente
2
En lugar de colocar ejecutables personalizados en C:\Windows, uno debería agregar un directorio personalizado a la PATHvariable de entorno.
Roland Illig
1

Alias ​​simples como Bash en Windows

Para obtener alias globales tipo bash en Windows para aplicaciones que no se agregan a la ruta automáticamente sin agregar manualmente cada una a la ruta, esta es la solución más limpia que se me ocurrió que realiza la menor cantidad de cambios en el sistema y tiene la mayor cantidad flexibilidad para una posterior personalización:

"Instale" su ruta de alias

mkdir c:\aliases
setx PATH "c:\aliases;%PATH%"

Agrega tu alias

Abrir en una nueva ventana de Shell

Para comenzar C:\path to\my program.exe, pasando todos los argumentos, abriéndolo en una nueva ventana, cree un c:\aliases\my program.batarchivo con los siguientes contenidos (vea NT Start Command para obtener detalles sobre el comando de inicio):

@echo off
start "myprogram" /D "C:\path to\" /W "myprogram.exe" %*

Ejecutar en la ventana actual de Shell

Para comenzar C:\path to\my program.exe, pasando todos los argumentos, pero ejecutándolo en la misma ventana (más como cómo funciona bash) crea un c:\aliases\my program.batarchivo con el siguiente contenido:

@echo off
pushd "C:\path to\"
"my program.exe" %*
popd

Ejecutar en la ventana actual de Shell 2

Si no necesita que la aplicación cambie el directorio de trabajo actual para poder operar, simplemente puede agregar un enlace simbólico al ejecutable dentro de su carpeta de alias:

cd c:\aliases\
mklink "my program.exe" "c:\path to\my program.exe"
Erasmus
fuente
0

Agregue a la RUTA, los pasos a continuación (Windows 10):

  1. Escriba en la barra de búsqueda "entorno ..." y elija Editar las variables de entorno del sistema que abre la ventana Propiedades del sistema
  2. Haga clic en el botón Variables de entorno ...
  3. En la pestaña Variables de entorno, haga doble clic en la variable Ruta en la sección Variables del sistema
  4. Agregue la ruta a la carpeta que contiene el .exe a la ruta haciendo doble clic en la línea vacía y pegue la ruta.
  5. Haga clic en Aceptar y salga. Abra un nuevo indicador de cmd y presione el comando desde cualquier carpeta y debería funcionar.
Akash Yellappa
fuente
0

Otra forma podría ser agregando .LNKa su $ PATHEX. Luego, simplemente cree un acceso directo a su ejecutable (es decir, yourshortcut.lnk) y colóquelo en cualquiera de los directorios que figuran en $ PATH.

NOTA DE ADVERTENCIA: sepa que los archivos .lnk ubicados en los directorios que figuran en su $ PATH ahora también están "PATH'ed". Por esta razón, preferiría el método de archivo por lotes mencionado anteriormente para este método.

Hept0p
fuente
-1

Si alguien está buscando esto después de mí, aquí hay una manera realmente fácil de agregar su ruta.

Envíe la ruta a un archivo como se muestra en la imagen, cópielo y péguelo desde el archivo y agregue la ruta específica al final con un punto y coma anterior a la nueva ruta. Puede ser necesario adaptarlo antes de Windows 7, pero al menos es un punto de partida fácil.

Imagen del símbolo del sistema para exportar RUTA al archivo de texto

Kevin
fuente
La parte esencial de una respuesta debe estar en un texto, no en una captura de pantalla externa.
Roland Illig
-3

La mejor manera de hacerlo es instalar el archivo .EXE en la carpeta windows / system32. de esa manera puedes ejecutarlo desde cualquier lugar. Este es el mismo lugar donde se puede encontrar el ping de .exe

Mateo
fuente
En lugar de colocar ejecutables personalizados en C:\Windows, uno debería agregar un directorio personalizado a la PATHvariable de entorno.
Roland Illig