"Registra" un .exe in modo da poterlo eseguire da qualsiasi riga di comando in Windows


152

Come si può rendere accessibile un file .exe da qualsiasi posizione nella finestra di comando di Windows? C'è qualche voce di registro che deve essere inserita?


Risposte:


97

Devi assicurarti che l'exe sia in una cartella che si trova nella PATHvariabile d'ambiente.

Puoi farlo installandolo in una cartella che è già sul PATHo aggiungendo la tua cartella al PATH.

Puoi fare in modo che il tuo programma di installazione esegua questa operazione, ma dovrai riavviare la macchina per assicurarti che venga prelevata.


Questa risposta è quasi sempre quella sbagliata. Per lo meno è incompleto. In particolare, questo approccio funziona bene per INSTALLAZIONE, ma non è buono per la disinstallazione. La maggior parte dei programmi di disinstallazione eseguirà il WHIPE dell'intera variabile PATH durante la disinstallazione dell'applicazione associata. Pertanto, se si scrive un'azione di installazione per aggiungere la directory a PATH, è necessario renderla un'azione di installazione CUSTOM che non viene automaticamente disinstallata dal pacchetto di rimozione generico. Quindi, abbina quel passaggio di installazione personalizzata con un passaggio di disinstallazione che rimuove solo la tua directory dalla variabile PATH.
Kim Gentes,

21
@KimGentes bene, questo è un problema con il programma di disinstallazione. Un buon programma di disinstallazione dovrebbe riordinare bene. Non rende la risposta sbagliata.
ChrisF

3
Sono d'accordo .. è un problema con l'installer. Ma dal momento che tutti gli installatori fanno questo a variabili (non analizzano ed estraggono porzioni di voci di registro o ENV VARIABLES), sembra prudente spiegarlo. Se uno segue esattamente le indicazioni, si imbatteranno sempre in questo problema, il che significa che probabilmente la soluzione dovrebbe sempre includere questo avvertimento. Nessun pacchetto di installazione si occupa di installare e disinstallare sezioni di voci del Registro di sistema o variabili ENV di cui sono a conoscenza, anche se per favore fatemi sapere se ce ne sono alcune che non conosco.
Kim Gentes,

Invece di "installare" l'ambiente usa un file batch con il comando SETX: SETX PATH "C: \ Windows" ----- e hai finito.
Stavm,

3
SETX è anche pericoloso perché ha un limite di lunghezza molto più basso rispetto alla stessa variabile PATH e troncerà invece di fallire.
Ben Voigt,

48

È possibile aggiungere la seguente chiave di registro :

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

In questa chiave, aggiungi il valore di stringa predefinito che contiene il percorso del file exe.


1
@sherdim: ne dubito fortemente. Tuttavia, ha sempre funzionato con il startcomando, quindi è possibile digitare start myexeun prompt cmd.exe. Ma da myexesolo non dovrebbe funzionare, penso (a meno che tu non sia nella directory di myexeo quella directory sia nella PATHvariabile di ambiente).
Andreas Rejbrand,

Faccio semplicemente un piccolo myprog.cmdfile con il seguente contenuto: @START myprog.exe %*Questo invoca la App Pathsvoce per myprog.exee passa tutti gli argomenti di comando. Il file dovrebbe essere creato da qualche parte accessibile inPATH
Stavr00

1
@sherdim @ andreas-rejbrand Posso confermare che non funziona su Windows 10 se myexe non è presente PATH. start myexefunziona con questa modifica del registro, senza aggiungere myexe a PATH.
davenpcj,

@davenpcj: Infatti. La chiave di registro che ho citato è relativa alla shell di Windows, non al prompt dei comandi. Quindi start myappfunziona, così come Win + R myapp, ma non un semplice myappin cmd.exe.
Andreas Rejbrand,

1
Questa chiave funziona per essere eseguita da Explorer.exe, se provi da CMD.exe non viene trovata.
prampe

41

Devi inserire il .exepercorso del tuo file nel percorso della variabile di ambiente. Vai su "Risorse del computer -> proprietà -> avanzate -> variabili di ambiente -> Percorso" e modifica il percorso aggiungendo .exela directory nel percorso.

Un'altra soluzione che preferisco personalmente è usare RapidEE per un editing delle variabili più fluido.


39

Windows 10, 8.1, 8

Apri il menu Start,

  1. genere Edit environment variables
  2. Apri l'opzione Edit the system environment variables
  3. Fare clic sul Environment variables...pulsante
  4. Lì vedi due caselle, nella System Variablescasella trova pathvariabile
  5. Clic Edit
  6. viene visualizzata una finestra, fare clic su New
  7. Digita il percorso della directory del tuo .exeo batchfile ( Directory significa escludere il nome del file dal percorso)
  8. Fare clic Oksu tutte le finestre aperte e riavviare il sistema riavviare il prompt dei comandi .

4
Questa è l'unica risposta che mi ha aiutato. Aggiungerei che il "riavvio del sistema" non è necessario. È sufficiente riavviare il cmd.
Joffrey Baratheon,

Con WinKey + R e digitare SystemPropertiesAdvanced
prampe

30

Invece di inserire il file eseguibile in una directory sul percorso, è necessario creare un file batch in una directory sul percorso che avvia il programma. In questo modo non separare l'eseguibile dai suoi file di supporto e non si aggiungono altre cose nella stessa directory al percorso involontariamente.

Tale file batch può essere simile al seguente:

@echo off
start "" "C:\Program Files (x86)\Software\software.exe" %*

1
Ti dispiace aggiungere un esempio di tale file batch - sarebbe bello?
petermeissner,

Sento che questa è l'opzione migliore, non volevo aggiungere troppe cose alla variabile path. Modificherò in questo esempio di risposta di tale file batch.
Dino,

1
Il problema che sto avendo con questo è che inizia una nuova shell. Sto cercando di far avviare un binario cygwin nella stessa shell, cosa che faccio se lo riferisco direttamente comeC:\cygwin\bin\grep.exe
Johann,

4
@Johann: elimina start "" e inizia con il percorso dell'eseguibile. Inoltre, per l'uso in Cygwin, potresti volere uno script della shell Cygwin o un collegamento simbolico. O un alias di shell.
Ben Voigt,

Perfetto, grazie! Sono d'accordo con le altre tue opzioni all'interno di Cygwin, ma in questo caso sto cercando di utilizzare un binario Cygwin da PowerShell.
Johann,

5

è incredibile che non ci sia una soluzione semplice per un'attività così semplice su Windows, ho creato questo piccolo script cmd che puoi usare per definire gli alias su Windows (le istruzioni sono nell'intestazione del file stesso):

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

questo è praticamente lo stesso approccio utilizzato da strumenti come NPM o gemme rubino per registrare comandi globali.


5

Diciamo che il mio exe è C: \ Programmi \ AzCopy \ azcopy.exe

Comando / CMD / Batch

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

PowerShell

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

Ora posso semplicemente digitare e utilizzare azcopyda qualsiasi posizione da qualsiasi prompt dei comandi di shell inc, powershell, git bash ecc


3
  • Se si desidera essere in grado di eseguirlo all'interno di cmd.exe o file batch, è necessario aggiungere la directory in cui si trova .exe nella variabile% path% ( Sistema o Utente )
  • Se vuoi essere in grado di eseguirlo nella finestra di dialogo Esegui (Win + R) o qualsiasi applicazione che chiama ShellExecute , è sufficiente aggiungere il tuo exe alla chiave dei percorsi dell'app (Questo è meno soggetto a errori durante l'installazione / disinstallazione e inoltre non ingombra la variabile del percorso)


2

Inseriscilo nella directory c: \ windows o aggiungi la tua directory al "percorso" nelle impostazioni dell'ambiente (windows-break - scheda avanzata)

saluti, // t


Invece di inserire eseguibili personalizzati in C:\Windows, si dovrebbe piuttosto aggiungere una directory personalizzata alla PATHvariabile di ambiente.
Roland Illig,

Dipende. Putty.exe ho inserito in / windows.
Teson,

1

Utilizzare un file batch di 1 riga nella propria installazione:

SETX PATH "C:\Windows"

eseguire il file bat

Ora posiziona il tuo .exe in c: \ windows e il gioco è fatto.

puoi digitare "exename" nella riga di comando e lo eseguirà.


2
Invece di inserire eseguibili personalizzati in C:\Windows, si dovrebbe piuttosto aggiungere una directory personalizzata alla PATHvariabile di ambiente.
Roland Illig,

1

Semplici alias simili a Bash in Windows

Per ottenere alias globali simili a bash in Windows per applicazioni non aggiunte automaticamente al percorso senza aggiungere manualmente ognuna al percorso, ecco la soluzione più pulita che ho trovato che fa il minor numero di modifiche al sistema e ha il maggior numero flessibilità per personalizzazioni successive:

"Installa" il tuo percorso alias

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

Aggiungi il tuo alias

Apri in una nuova finestra della shell

Per iniziare C:\path to\my program.exe, passando tutti gli argomenti, aprendolo in una nuova finestra, creare un c:\aliases\my program.batfile con i seguenti contenuti (vedere NT Start Command per i dettagli sul comando di avvio):

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

Esegui nella finestra shell corrente

Per iniziare C:\path to\my program.exe, passando tutti gli argomenti, ma eseguendolo nella stessa finestra (più simile a come funziona bash) creare un c:\aliases\my program.batfile con i seguenti contenuti:

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

Esegui nella finestra shell corrente 2

Se non è necessario che l'applicazione cambi la directory di lavoro corrente per poter funzionare, è sufficiente aggiungere un link simbolico all'eseguibile all'interno della cartella degli alias:

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

0

Aggiungi al PERCORSO, passaggi di seguito (Windows 10):

  1. Digita la barra di ricerca "ambiente ..." e scegli Modifica le variabili di ambiente di sistema che aprono la finestra Proprietà del sistema
  2. Fai clic sul pulsante Variabili d'ambiente ...
  3. Nella scheda Variabili d'ambiente, fai doppio clic sulla variabile Path nella sezione Variabili di sistema
  4. Aggiungi il percorso alla cartella contenente .exe al percorso facendo doppio clic sulla riga vuota e incolla il percorso.
  5. Fai clic su OK ed esci. Apri un nuovo prompt cmd e premi il comando da qualsiasi cartella e dovrebbe funzionare.

0

Un altro modo potrebbe essere attraverso l'aggiunta .LNKal tuo $ PATHEX. Quindi basta creare un collegamento al file eseguibile (ad esempio: yourshortcut.lnk) e inserirlo in una delle directory elencate in $ PATH.

NOTA AVVISO: Sappi che anche i file .lnk presenti in qualsiasi directory elencata in $ PATH sono ora "PATH". Per questo motivo, preferirei il metodo del file batch menzionato in precedenza per questo metodo.


-1

Qualcuno dovrebbe cercarlo dopo di me, ecco un modo davvero semplice per aggiungere il tuo percorso.

Invia il percorso a un file come mostrato nell'immagine, copialo e incollalo dal file e aggiungi il percorso specifico alla fine con un punto e virgola precedente al nuovo percorso. Potrebbe essere necessario adattarlo prima di Windows 7, ma almeno è un semplice punto di partenza.

Comando Prompt Image per esportare PATH in file di testo


La parte essenziale di una risposta dovrebbe essere in un testo, non in uno screenshot esterno.
Roland Illig,

-3

Il modo migliore per farlo è semplicemente installare il file .EXE nella cartella windows / system32. in questo modo puoi eseguirlo da qualsiasi posizione. Questo è lo stesso posto in cui è possibile trovare il ping simile a .exe


Invece di inserire eseguibili personalizzati in C:\Windows, si dovrebbe piuttosto aggiungere una directory personalizzata alla PATHvariabile di ambiente.
Roland Illig,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.