Ordine in cui il prompt dei comandi esegue i file con lo stesso nome (a.bat vs a.cmd vs a.exe)
-
03-07-2019 - |
Domanda
Qual è l'ordine in cui il prompt dei comandi di Windows esegue i file con lo stesso nome, ma con estensioni diverse?
Ad esempio, ho un sacco di file eseguibili: something.cmd
, something.bat
e something.exe
. Quale di questi verrebbe eseguito quando ho digitato qualcosa
in un prompt dei comandi (dato che erano sul percorso, ecc.)? Se quel file non esistesse, quale verrebbe eseguito?
C'è un riferimento che lo descrive?
Soluzione
Okay, ho fatto una rapida sperimentazione sulla base di alcune altre ricerche che avevo fatto.
L'essenziale è che l'ordine dei comandi dipende dall'ordine in cui le estensioni sono memorizzate nella variabile d'ambiente PATHEXT. Quindi inizialmente avevo:
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.RB;.RBW
e per l'esempio sopra l'ordine in cui sarebbe stato eseguito era:
something.exe
something.bat
something.cmd
La modifica dell'ordine in cui sono stati definiti nella variabile d'ambiente PATHEXT ha effettivamente cambiato l'ordine in cui sono stati eseguiti.