«Enregistrez» un .exe afin de pouvoir l'exécuter à partir de n'importe quelle ligne de commande dans Windows
152
Comment rendre un fichier .exe accessible à partir de n'importe quel emplacement dans la fenêtre de commande Windows? Y a-t-il une entrée de registre à saisir?
Cette réponse est presque toujours la mauvaise. À tout le moins, il est incomplet. Plus précisément, cette approche fonctionne correctement pour l'INSTALLATION, mais pas pour la désinstallation. La plupart des programmes de désinstallation fouetteront la variable PATH entière lors de la désinstallation de l'application associée. Par conséquent, si vous écrivez une action d'installation pour ajouter le répertoire à PATH, vous devez en faire une action d'installation PERSONNALISÉE qui n'est pas automatiquement désinstallée par le package de suppression générique. Ensuite, faites correspondre cette étape d'installation personnalisée avec une étape de désinstallation qui supprime uniquement votre répertoire de la variable PATH.
Kim Gentes
21
@KimGentes et bien c'est un problème avec le programme de désinstallation. Un bon programme de désinstallation devrait bien ranger. Cela ne rend pas la réponse fausse.
ChrisF
3
Je suis d'accord .. c'est un problème avec l'installateur. Mais puisque tous les installateurs font cela aux variables (ils n'analysent et n'extraient pas des portions d'entrées de registre ou ENV VARIABLES), il semble prudent de l'expliquer. Si l'on suit exactement les directions, ils se heurteront toujours à ce problème, ce qui signifie que la solution devrait probablement toujours inclure cette mise en garde. Aucun package d'installation ne prend en charge l'installation et la désinstallation de sections d'entrées de registre ou de variables ENV que je connais, bien que je vous prie de me le faire savoir s'il y en a que je ne connais pas.
Kim Gentes
Au lieu d '"installer" l'environnement, utilisez un fichier de commandes avec la commande SETX: SETX PATH "C: \ Windows" ----- et vous avez terminé.
Stavm
3
SETX est également dangereux car il a une limite de longueur beaucoup plus basse que la variable PATH elle-même et tronquera au lieu d'échouer.
@sherdim: J'en doute fortement. Cependant, cela a toujours fonctionné avec la startcommande, vous pouvez donc taper start myexeune invite cmd.exe. Mais myexeseul ne devrait pas fonctionner, je pense (sauf si vous êtes dans le répertoire de myexeou si ce répertoire est dans la PATHvariable d'environnement).
Andreas Rejbrand
Je crée simplement un petit myprog.cmdfichier avec le contenu suivant: @START myprog.exe %*Cela appelle l' App Pathsentrée pour myprog.exeet passe tous les arguments de commande. Le fichier doit être créé quelque part accessible dansPATH
Stavr00
1
@sherdim @ andreas-rejbrand Je peux confirmer que cela ne fonctionne pas sur Windows 10 si myexe n'est pas dans PATH. start myexefonctionne avec ce changement de registre, sans ajouter myexe à PATH.
davenpcj
@davenpcj: En effet. La clé de registre que j'ai mentionnée est liée au shell Windows, pas à l'invite de commande. Cela start myappfonctionne donc , ainsi que Win + R myapp, mais pas un simple myappdans cmd.exe.
Andreas Rejbrand
1
Cette clé fonctionne pour s'exécuter à partir d'Explorer.exe, si vous essayez à partir de CMD.exe, elle n'est pas trouvée.
préamp le
41
Vous devez placer .exele chemin de votre fichier dans le chemin de la variable d'environnement. Allez dans "Poste de travail -> propriétés -> avancé -> variables d'environnement -> Chemin" et éditez le chemin en ajoutant .exele répertoire de dans le chemin.
Une autre solution que je préfère personnellement consiste à utiliser RapidEE pour une édition plus fluide des variables.
C'est la seule réponse qui m'a aidé. J'ajouterais que "redémarrer le système" n'est pas nécessaire. Un simple redémarrage de la cmd suffirait.
Joffrey Baratheon
Avec WinKey + R et tapez SystemPropertiesAdvanced
préamp le
30
Plutôt que de placer l'exécutable dans un répertoire sur le chemin, vous devez créer un fichier de commandes dans un répertoire sur le chemin qui lance le programme. De cette façon, vous ne séparez pas l'exécutable de ses fichiers de support, et vous n'ajoutez pas d'autres éléments dans le même répertoire au chemin par inadvertance.
Un tel fichier de commandes peut ressembler à ceci:
@echo off
start "" "C:\Program Files (x86)\Software\software.exe" %*
Cela vous dérange-t-il d'ajouter un exemple d'un tel fichier batch - ce serait bien?
petermeissner
Je pense que c'est la meilleure option, je ne voulais pas ajouter trop de choses à la variable de chemin. Je vais modifier cet exemple de réponse d'un tel fichier de commandes.
Dino
1
Le problème que j'ai avec ceci est qu'il démarre un nouveau shell. J'essaie de lancer un binaire cygwin dans le même shell, ce qu'il fait si je le référence directement commeC:\cygwin\bin\grep.exe
Johann
4
@Johann: Retirez le start "" et commencez par le chemin d'accès à l'exécutable. De plus, pour une utilisation dans cygwin, vous voudrez peut-être un script shell cygwin ou un lien symbolique. Ou un alias de shell.
Ben Voigt
Parfait, merci! Je suis d'accord avec vos autres options pour cygwin, mais dans ce cas, j'essaie d'utiliser un binaire cygwin de PowerShell.
Johann
5
c'est étonnant qu'il n'y ait pas de solution simple pour une tâche aussi simple sur windows, j'ai créé ce petit script cmd que vous pouvez utiliser pour définir des alias sur windows (les instructions se trouvent dans l'en-tête du fichier lui-même):
Je peux maintenant simplement taper et utiliser à azcopypartir de n'importe quel emplacement à partir de n'importe quelle invite de commande shell inc, powershell, git bash, etc.
Si vous souhaitez pouvoir l'exécuter dans cmd.exe ou dans des fichiers batch, vous devez ajouter le répertoire dans lequel se trouve le .exe à la variable% path% ( système ou utilisateur )
Si vous voulez pouvoir l'exécuter dans la boîte de dialogue Exécuter (Win + R) ou dans toute application qui appelle ShellExecute , l'ajout de votre exe à la clé des chemins de l' application est suffisant (cela est moins sujet aux erreurs lors de l'installation / désinstallation et n'encombre pas non plus dans la variable de chemin)
Vous pouvez également ajouter de manière permanente (après les redémarrages) à la variable Path de cette façon:
Cliquez avec le bouton droit sur Poste de travail -> Cliquez sur Propriétés -> Cliquez sur Paramètres système avancés -> Cliquez sur Variables d'environnement
Au lieu de placer des exécutables personnalisés C:\Windows, il faut plutôt ajouter un répertoire personnalisé à la PATHvariable d'environnement.
Roland Illig
1
Alias simples de type Bash dans Windows
Pour obtenir des alias globaux de type bash dans Windows pour les applications non ajoutées automatiquement au chemin sans ajouter manuellement chacune d'entre elles au chemin, voici la solution la plus propre que j'ai proposée, qui apporte le moins de modifications au système et en a le plus flexibilité pour une personnalisation ultérieure:
"Installer" le chemin de vos alias
mkdir c:\aliases
setx PATH "c:\aliases;%PATH%"
Ajoutez votre alias
Ouvrir dans une nouvelle fenêtre Shell
Pour commencer C:\path to\my program.exe, en passant tous les arguments, en l'ouvrant dans une nouvelle fenêtre, créezc:\aliases\my program.bat fichier avec le contenu suivant (voir Commande NT Start pour plus de détails sur la commande start):
@echo off
start "myprogram" /D "C:\path to\" /W "myprogram.exe" %*
Exécuter dans la fenêtre Shell actuelle
Commencer C:\path to\my program.exe , en passant tous les arguments, mais en l'exécutant dans la même fenêtre (plus comme le fonctionnement de bash), créez un c:\aliases\my program.batfichier avec le contenu suivant:
@echo off
pushd "C:\path to\"
"my program.exe" %*
popd
Exécuter dans la fenêtre actuelle du shell 2
Si vous n'avez pas du tout besoin de l'application pour changer le répertoire de travail courant pour fonctionner, vous pouvez simplement ajouter un lien symbolique vers l'exécutable dans votre dossier alias:
cd c:\aliases\
mklink "my program.exe" "c:\path to\my program.exe"
Une autre façon pourrait être d'ajouter .LNK à votre $ PATHEX. Ensuite, créez simplement un raccourci vers votre exécutable (par exemple: yourshortcut.lnk) et placez-le dans l'un des répertoires répertoriés dans $ PATH.
AVERTISSEMENT REMARQUE: sachez que tous les fichiers .lnk situés dans les répertoires répertoriés dans votre $ PATH sont désormais également "PATH'ed". Pour cette raison, je préférerais la méthode du fichier batch mentionnée précédemment à cette méthode.
Si quelqu'un cherche cela après moi, voici un moyen très simple d'ajouter votre chemin.
Envoyez le chemin vers un fichier comme le montre l'image, copiez-le et collez-le à partir du fichier et ajoutez le chemin spécifique à la fin avec un point-virgule précédent au nouveau chemin. Il peut être nécessaire de l'adapter avant Windows 7, mais au moins c'est un point de départ facile.
La partie essentielle d'une réponse doit être dans un texte, pas dans une capture d'écran externe.
Roland Illig
-3
La meilleure façon de procéder consiste simplement à installer le fichier .EXE dans le dossier windows / system32. de cette façon, vous pouvez l'exécuter depuis n'importe quel endroit. C'est le même endroit où se trouvent les .exe comme ping
Réponses:
Vous devez vous assurer que l'exe se trouve dans un dossier qui se trouve sur la
PATH
variable d'environnement.Vous pouvez le faire soit en l'installant dans un dossier qui se trouve déjà sur le,
PATH
soit en ajoutant votre dossier auPATH
.Vous pouvez demander à votre installateur de le faire, mais vous devrez redémarrer la machine pour vous assurer qu'elle est récupérée.
la source
Vous pouvez ajouter la clé de registre suivante :
Dans cette clé, ajoutez la valeur de chaîne par défaut contenant le chemin d'accès au fichier exe.
la source
start
commande, vous pouvez donc taperstart myexe
une invite cmd.exe. Maismyexe
seul ne devrait pas fonctionner, je pense (sauf si vous êtes dans le répertoire demyexe
ou si ce répertoire est dans laPATH
variable d'environnement).myprog.cmd
fichier avec le contenu suivant:@START myprog.exe %*
Cela appelle l'App Paths
entrée pourmyprog.exe
et passe tous les arguments de commande. Le fichier doit être créé quelque part accessible dansPATH
PATH
.start myexe
fonctionne avec ce changement de registre, sans ajouter myexe àPATH
.start myapp
fonctionne donc , ainsi que Win + Rmyapp
, mais pas un simplemyapp
dans cmd.exe.Vous devez placer
.exe
le chemin de votre fichier dans le chemin de la variable d'environnement. Allez dans "Poste de travail -> propriétés -> avancé -> variables d'environnement -> Chemin" et éditez le chemin en ajoutant.exe
le répertoire de dans le chemin.Une autre solution que je préfère personnellement consiste à utiliser RapidEE pour une édition plus fluide des variables.
la source
Windows 10, 8.1, 8
Ouvrez le menu de démarrage,
Edit environment variables
Edit the system environment variables
Environment variables...
boutonSystem Variables
boîte findpath
variableEdit
New
.exe
oubatch
(le répertoire signifie exclure le nom du fichier du chemin)Ok
sur toutes les fenêtres ouvertes etredémarrez votre système,redémarrez l'invite de commande .la source
Plutôt que de placer l'exécutable dans un répertoire sur le chemin, vous devez créer un fichier de commandes dans un répertoire sur le chemin qui lance le programme. De cette façon, vous ne séparez pas l'exécutable de ses fichiers de support, et vous n'ajoutez pas d'autres éléments dans le même répertoire au chemin par inadvertance.
Un tel fichier de commandes peut ressembler à ceci:
la source
C:\cygwin\bin\grep.exe
start ""
et commencez par le chemin d'accès à l'exécutable. De plus, pour une utilisation dans cygwin, vous voudrez peut-être un script shell cygwin ou un lien symbolique. Ou un alias de shell.c'est étonnant qu'il n'y ait pas de solution simple pour une tâche aussi simple sur windows, j'ai créé ce petit script cmd que vous pouvez utiliser pour définir des alias sur windows (les instructions se trouvent dans l'en-tête du fichier lui-même):
https://gist.github.com/benjamine/5992592
c'est à peu près la même approche utilisée par des outils comme NPM ou ruby gems pour enregistrer des commandes globales.
la source
Disons que mon exe est C: \ Program Files \ AzCopy \ azcopy.exe
Commande / CMD / Lot
PowerShell
Je peux maintenant simplement taper et utiliser à
azcopy
partir de n'importe quel emplacement à partir de n'importe quelle invite de commande shell inc, powershell, git bash, etc.la source
la source
Vous pouvez également ajouter de manière permanente (après les redémarrages) à la variable Path de cette façon:
Cliquez avec le bouton droit sur Poste de travail -> Cliquez sur Propriétés -> Cliquez sur Paramètres système avancés -> Cliquez sur Variables d'environnement
Référence: Modifier les variables système / utilisateur
la source
Mettez-le dans le répertoire c: \ windows ou ajoutez votre répertoire au "chemin" dans les paramètres d'environnement (windows-break - onglet avancé)
salutations, // t
la source
C:\Windows
, il faut plutôt ajouter un répertoire personnalisé à laPATH
variable d'environnement.Utilisez un fichier de commandes d'une ligne dans votre installation:
exécuter le fichier bat
Maintenant, placez votre .exe dans c: \ windows, et vous avez terminé.
vous pouvez taper le 'exename' en ligne de commande et il l'exécutera.
la source
C:\Windows
, il faut plutôt ajouter un répertoire personnalisé à laPATH
variable d'environnement.Alias simples de type Bash dans Windows
Pour obtenir des alias globaux de type bash dans Windows pour les applications non ajoutées automatiquement au chemin sans ajouter manuellement chacune d'entre elles au chemin, voici la solution la plus propre que j'ai proposée, qui apporte le moins de modifications au système et en a le plus flexibilité pour une personnalisation ultérieure:
"Installer" le chemin de vos alias
Ajoutez votre alias
Ouvrir dans une nouvelle fenêtre Shell
Pour commencer
C:\path to\my program.exe
, en passant tous les arguments, en l'ouvrant dans une nouvelle fenêtre, créezc:\aliases\my program.bat
fichier avec le contenu suivant (voir Commande NT Start pour plus de détails sur la commande start):Exécuter dans la fenêtre Shell actuelle
Commencer
C:\path to\my program.exe
, en passant tous les arguments, mais en l'exécutant dans la même fenêtre (plus comme le fonctionnement de bash), créez unc:\aliases\my program.bat
fichier avec le contenu suivant:Exécuter dans la fenêtre actuelle du shell 2
Si vous n'avez pas du tout besoin de l'application pour changer le répertoire de travail courant pour fonctionner, vous pouvez simplement ajouter un lien symbolique vers l'exécutable dans votre dossier alias:
la source
Ajouter au PATH, étapes ci-dessous (Windows 10):
la source
Une autre façon pourrait être d'ajouter
.LNK
à votre $ PATHEX. Ensuite, créez simplement un raccourci vers votre exécutable (par exemple: yourshortcut.lnk) et placez-le dans l'un des répertoires répertoriés dans $ PATH.AVERTISSEMENT REMARQUE: sachez que tous les fichiers .lnk situés dans les répertoires répertoriés dans votre $ PATH sont désormais également "PATH'ed". Pour cette raison, je préférerais la méthode du fichier batch mentionnée précédemment à cette méthode.
la source
Si quelqu'un cherche cela après moi, voici un moyen très simple d'ajouter votre chemin.
Envoyez le chemin vers un fichier comme le montre l'image, copiez-le et collez-le à partir du fichier et ajoutez le chemin spécifique à la fin avec un point-virgule précédent au nouveau chemin. Il peut être nécessaire de l'adapter avant Windows 7, mais au moins c'est un point de départ facile.
Image d'invite de commande pour exporter PATH vers un fichier texte
la source
La meilleure façon de procéder consiste simplement à installer le fichier .EXE dans le dossier windows / system32. de cette façon, vous pouvez l'exécuter depuis n'importe quel endroit. C'est le même endroit où se trouvent les .exe comme ping
la source
C:\Windows
, il faut plutôt ajouter un répertoire personnalisé à laPATH
variable d'environnement.