"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?
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.
@ 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.
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" %*
¿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):
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)
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"
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.
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.
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
Respuestas:
Debe asegurarse de que el archivo exe esté en una carpeta que esté en la
PATH
variable de entorno.Puede hacerlo instalándolo en una carpeta que ya está en el
PATH
o agregando su carpeta alPATH
.Puede hacer que su instalador haga esto, pero necesitará reiniciar la máquina para asegurarse de que se recupere.
fuente
Puede agregar la siguiente clave de registro :
En esta clave, agregue el valor de cadena predeterminado que contiene la ruta al archivo exe.
fuente
start
comando, por lo que puede escribirstart myexe
un indicador cmd.exe. Peromyexe
solo no debería funcionar, creo (a menos que esté en el directorio demyexe
o ese directorio esté en laPATH
variable de entorno).myprog.cmd
archivo con el siguiente contenido:@START myprog.exe %*
Esto invoca laApp Paths
entradamyprog.exe
y pasa todos los argumentos de comando. El archivo debe crearse en algún lugar accesible enPATH
PATH
.start myexe
funciona con este cambio de registro, sin agregar myexe aPATH
.start myapp
funciona, así como Win + Rmyapp
, pero no es simplemyapp
en cmd.exe.Tienes que poner
.exe
la 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.exe
el directorio en la ruta.Otra solución que prefiero personalmente es usar RapidEE para una edición variable más fluida.
fuente
Windows 10, 8.1, 8
Abrir menú de inicio,
Edit environment variables
Edit the system environment variables
Environment variables...
botónSystem Variables
cuadro encontrarpath
variableEdit
New
.exe
obatch
( Directorio significa excluir el nombre del archivo de la ruta)Ok
en todas las ventanas abiertas yreinicie su sistema,reinicie el símbolo del sistema .fuente
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í:
fuente
C:\cygwin\bin\grep.exe
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.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.
fuente
Digamos que mi exe es C: \ Archivos de programa \ AzCopy \ azcopy.exe
Comando / CMD / Lote
Potencia Shell
Ahora puedo simplemente escribir y usar
azcopy
desde cualquier ubicación desde cualquier símbolo del sistema de shell inc, powershell, git bash, etc.fuente
fuente
También puede agregar permanentemente (después de reiniciar) la variable Ruta de esta manera:
Haga clic derecho en Mi PC -> Haga clic en Propiedades -> Haga clic en Configuración avanzada del sistema -> Haga clic en Variables de entorno
Referencia: Cambiar sistema / variables de usuario
fuente
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
fuente
C:\Windows
, uno debería agregar un directorio personalizado a laPATH
variable de entorno.Use un archivo por lotes de 1 línea en su instalación:
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á.
fuente
C:\Windows
, uno debería agregar un directorio personalizado a laPATH
variable de entorno.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
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 unc:\aliases\my program.bat
archivo con los siguientes contenidos (vea NT Start Command para obtener detalles sobre el comando de inicio):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 unc:\aliases\my program.bat
archivo con el siguiente contenido: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:
fuente
Agregue a la RUTA, los pasos a continuación (Windows 10):
fuente
Otra forma podría ser agregando
.LNK
a 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.
fuente
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
fuente
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
fuente
C:\Windows
, uno debería agregar un directorio personalizado a laPATH
variable de entorno.