Ejecución de archivos en Windows sin indicar la extensión

Cuando desde la línea de comandos invocamos un archivo ejecutable especificando su nombre pero no su extensión, Windows busca en el directorio actual y en aquellos definidos en la variable PATH un archivo con ese nombre y alguna de las extensiones definidas en la variable PATHEXT. Si lo encuentra, lo ejecuta.

Para ver cuales son las ubicaciones en las que buscará el comando, debemos imprimir el contenido de la variable PATH:

echo %PATH%
-> C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem

Para ver cuales son las extensiones que se consideran como ejecutable, debemos imprimir el contenido de la variable PATHEXT:

echo %PATHEXT%
-> .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

 

Cuando el comando invocado no existe en el directorio actual, se lo busca en los directorios de la variable PATH en el orden en que están definidos (de izquierda a derecha). Al encontrar una coincidencia, se detiene y lo ejecuta.

Ejemplo:

C:\www\> ipconfig

ejecuta ipconfig.exe de C:\Windows\System32\

Cuando no se indica la extensión, existe la posibilidad de que dentro del mismo directorio, ya sea el actual o alguno de la variable PATH, exista más de un archivo con ese nombre y diferentes extensiones ejecutables! Es entonces que se elige el de la extensión que se encuentre definida antes en la variable PATHEXT.

Si existieran en C:\Windows\System32:

  • ipconfig.exe
  • ipconfig.com

al escribir

C:\www\> ipconfig

ejecutaría ipconfig.com de C:\Windows\System32\ ya que .COM está antes en la lista que .EXE cuando escribamos solamente ipconfig.

 

Basado en:

http://windowsitpro.com/systems-management/how-do-i-execute-exe-files-without-typing-extension

Tagged with: , ,
Publicado en Windows