Come viene eseguito un programma che non è sul mio percorso? [duplicare]


57

Possibile duplicato:
Perché sono in grado di eseguire un programma che non si trova nella mia variabile d'ambiente PATH?

Stavo insegnando a un collega su% PATH% e ho scoperto che se avessi eseguito "Firefox", funzionava, ma sono rimasto sorpreso nel vedere che non era sul mio percorso.

Cosa mi sto perdendo?


2
Dipende dal contesto. Se stai inserendo "firefox" da una riga di comando, allora firefox.exe deve trovarsi nel percorso o nelle cartelle Windows o Windows \ System32. Se stai inserendo "Firefox" nella finestra di dialogo Esegui, viene utilizzato il registro dei percorsi delle app, quindi firefox.exe è registrato lì.
boot13,

Grazie boot13, non ero a conoscenza delle chiavi di registro dei percorsi app.
Mathew,

Risposte:


101

Se stai tentando di eseguire un eseguibile specificando solo il suo nome, Windows cerca il file nei seguenti percorsi :

  1. La directory di lavoro corrente.
  2. Solo la Windowsdirectory (non viene cercata alcuna sottodirectory).
  3. La Windows\System32directory.
  4. Directory elencate nella variabile d'ambiente PATH.
  5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths(anche HKEY_CURRENT_USERda Windows 7)

Microsoft consiglia in realtà di "registrare" le applicazioni nella App Pathssottochiave per evitare la necessità che le applicazioni modifichino la PATHvariabile di ambiente di sistema . Il programma di installazione dell'applicazione registra l'eseguibile.


3
Una delle migliori risposte a una domanda che abbia mai visto. +1
Everett,

Grazie, signore. Impara qualcosa di nuovo ogni giorno.
Mathew,

8
@Mathew Prego. Tenere presente che la sottochiave "Percorsi app" esiste anche nell'hive HKCU per le applicazioni installate per un solo utente .
JC2k8,

1
Ecco perché non ho mai avuto problemi con il PERCORSO fino a quando non sono passato dallo sviluppo .NET allo sviluppo Java. Non ho mai veramente pensato al perché tutto nello sviluppo di .NET "funziona"!
Stephen Swensen,

2
Questo è vero solo per la finestra di dialogo Esegui di Windows, in cmd.exe e powershell vengono utilizzati solo da 1. a 4. Vedi anche il commento di boot13.
Alexander,
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.