«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?

HK1
la source
6
superuser.com
David Heffernan

Réponses:

97

Vous devez vous assurer que l'exe se trouve dans un dossier qui se trouve sur la PATHvariable d'environnement.

Vous pouvez le faire soit en l'installant dans un dossier qui se trouve déjà sur le, PATHsoit en ajoutant votre dossier au PATH.

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.

ChrisF
la source
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.
Ben Voigt
48

Vous pouvez ajouter la clé de registre suivante :

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

Dans cette clé, ajoutez la valeur de chaîne par défaut contenant le chemin d'accès au fichier exe.

Andreas Rejbrand
la source
1
@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.

darioo
la source
39

Windows 10, 8.1, 8

Ouvrez le menu de démarrage,

  1. Type Edit environment variables
  2. Ouvrez l'option Edit the system environment variables
  3. Cliquez sur le Environment variables...bouton
  4. Là vous voyez deux boîtes, dans la System Variablesboîte find pathvariable
  5. Cliquez sur Edit
  6. une fenêtre apparaît, cliquez sur New
  7. Tapez le chemin du répertoire de votre fichier .exeou batch(le répertoire signifie exclure le nom du fichier du chemin)
  8. Cliquez Oksur toutes les fenêtres ouvertes et redémarrez votre système, redémarrez l'invite de commande .
AmiNadimi
la source
4
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" %*
Ben Voigt
la source
1
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):

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.

Benja
la source
5

Disons que mon exe est C: \ Program Files \ AzCopy \ azcopy.exe

Commande / CMD / Lot

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

PowerShell

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

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.

Bevan
la source
3
  • 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)
Anders
la source
2

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

Teson
la source
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
Ça dépend. Putty.exe j'ai mis dans / windows.
Teson
1

Utilisez un fichier de commandes d'une ligne dans votre installation:

SETX PATH "C:\Windows"

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.

Stavm
la source
2
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"
Erasmus
la source
0

Ajouter au PATH, étapes ci-dessous (Windows 10):

  1. Tapez la barre de recherche "environnement ..." et choisissez Modifier les variables d'environnement système qui ouvre la fenêtre Propriétés système
  2. Cliquez sur le bouton Variables d'environnement ...
  3. Dans l'onglet Variables d'environnement, double-cliquez sur la variable Path dans la section Variables système
  4. Ajoutez le chemin du dossier contenant le .exe au chemin en double-cliquant sur la ligne vide et collez le chemin.
  5. Cliquez sur ok et quittez. Ouvrez une nouvelle invite cmd et appuyez sur la commande à partir de n'importe quel dossier et cela devrait fonctionner.
Akash Yellappa
la source
0

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.

Hept0p
la source
-1

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

Kevin
la source
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

Matthieu
la source
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