En Windows, * .exe, * .bat, * .cmd y * .com representan programas o scripts de shell que se pueden ejecutar, simplemente haciendo doble clic en ellos. ¿Hay alguna otra extensión de nombre de archivo que indique que un archivo es ejecutable?
EDITAR : Cuando salto a un nuevo proyecto (¡o vuelvo a un proyecto antiguo!), Una de las cosas comunes que quiero hacer al mirar alrededor es descubrir qué herramientas hay. En Unix (que he usado durante décadas), hay un bit de ejecución, por lo que es tan simple como:
find . -executable -type f
Pensé que en Windows, que parece tener un mecanismo mucho más complejo para "es este ejecutable (y cómo lo ejecuto)", habría un número relativamente pequeño de extensiones de nombre de archivo que servirían aproximadamente para el mismo propósito.
Para mi proyecto actual, *.exe *.bat *.cmd
es casi seguro suficiente, pero pensé en preguntar si había una lista autorizada.
fuente
Uno común para los programas de instalación es
.msi
.fuente
msiexec.exe
..vbs es un script. y .js
Pero si conoce algo de historia, entonces podría poner las cosas en contexto mejor. Supongo que si no hubiera usado las computadoras durante el tiempo que lo he hecho, también podría centrarme en saber qué extensiones son ejecutables ... porque son bastante emocionantes y parecen fundamentales ... y supongo que sí ... Pero note cómo con el tiempo, .COM se extinguió mucho después de DOS, solo conocido principalmente, supongo que después de eso, si es que lo hizo, en Windows 9x en el shell de command.com. Quizás los viejos NT los usaban mucho. Scripts ... vbs llegó alrededor de win9x quizás ... entonces aparecen nuevos. ps1 es incluso más nuevo que vbs.
.COM es muy antiguo. No estoy seguro si Windows XP, por ejemplo, depende de algún archivo .COM. Pero tiene un comando.com más para aplicaciones heredadas, supongo.
.BAT es un script ... de los días de DOS. todavía en uso hoy. .VBS es más moderno, pero .BAT todavía se usa y no se dejará de usar en el corto plazo, y la gente usa sensatamente ambos. Hay .CMD que no he usado pero que probablemente no sea tan diferente a nada. Hay ps1 (powershell. Esto es más moderno que vbscript) Si hablamos de scripts en un sentido laxo, hay .REG
Realmente, el término ejecutable solo se aplica a EXE y .COM (.COM está básicamente extinto ... más una cosa de win9x (el símbolo del sistema en win9x era command.com, no había cmd.exe), y los archivos COM son cosa de DOS. Pero no CMD de NT, por ejemplo, el shell de comandos de NT es cmd.exe, aunque, como se mencionó, hay un command.com en NT, supongo que para aplicaciones heredadas, pero NT probablemente no confíe en él)
.MSC, por ejemplo, start..run..services.msc No son ejecutables..Supongo que son una especie de script .. services.msc parece estar escrito en xml) Pero si se pierde, uno podría ir un paso más allá a cosas que no son del sistema, y dicen que las páginas HTML son una porque se interpretan ... como un script. Pero no por el sistema operativo, sin embargo ... .CPL no son scripts ... míralos en el bloc de notas. La gente tiende a no pensar en ellos como ejecutables o scripts, tal vez porque solo los desarrolladores de MS los escriben. (o si otros lo hacen, ¡eso es muy poco frecuente!)
fuente
.MSC
alPATHEXT
no le permite ejecutar complementos MMC sin agregar la extensión (por ejemplo, enservices
lugar deservices.msc
).:-(
services.exe
.diskmgmt
(sin la extensión) desde un símbolo del sistema , funcionará, peroservices
no lo hará. Sin embargo, ninguno de ellos funcionará si intenta ejecutarlos desde el cuadro de diálogo Ejecutar sin la.msc
extensión, aunque lapathext
variable de todo el sistema contenga.msc
.¿Denotar a qué?
Sé que esa pregunta probablemente suene un poco confusa en este momento, pero la pregunta importa. Mientras explico por qué es importante, la pregunta se hará más clara.
Aunque la respuesta de Ken White de la variable PATHEXT (en el "entorno" del símbolo del sistema) es una respuesta agradable y breve, y esa respuesta puede funcionar bien para usted, la respuesta es incompleta. La razón que está incompleta es que la respuesta correcta es diferente en función de lo que está tratando de hacer.
Por ejemplo, puede intentar:
Algunos de estos métodos para ejecutar programas pueden usar diferentes métodos para determinar qué extensiones de nombre de archivo pueden ser compatibles. En particular, el uso de CMD puede ser diferente al menú Ejecutar.
Por ejemplo, el desconcertante blog de Wes: Personalizando el comando Ejecutar de Windows ... observa diferentes ubicaciones que se verifican, incluida la clave de registro.
La respuesta también puede depender de qué versión de Microsoft Windows se esté utilizando. En Windows 10, simplemente escribí el nombre de un archivo zip en el símbolo del sistema, y se abrió el Explorador de Windows. Me parece recordar que no funciona en Windows XP (aunque en Windows XP, podría escribir "start filename.zip" y obtener el mismo tipo de efecto). Entonces, mi memoria está defectuosa o Microsoft ha estado tratando de hacer mejoras en las versiones más nuevas de Windows. (Con suerte, para mí, este último).
En el símbolo del sistema tradicional de Windows 10 (ejecutando "CMD"), cuando voy a la ubicación (usando el comando "CD") de un archivo zip y escribo "filename.zip", se abrirá el archivo. Cuando voy a esa ubicación y escribo "nombre de archivo" (sin la extensión de archivo ".zip"), Windows no encuentra el archivo. Sin embargo, si ejecuto "
ECHO %PATHEXT%
" y luego "SET PATHEXT=%PATHEXT%;.ZIP
" (y luego "ECHO %PATHEXT%
" nuevamente, para asegurarme de que tuve el efecto deseado), entonces puedo escribir "nombre de archivo" y el símbolo del sistema encontrará el archivo .ZIP. Entonces, ese es el efecto de la variable% PATHEXT%.Es posible que pueda ver otra lista de extensiones ejecutando el
ASSOC
comando. Por ejemplo, ejecutar ese comando muestra varias líneas de salida, incluidas las siguientes (en mi sistema) - ".zip=CompressedFolder
". Entonces, puedo ver lo que se ejecuta al escribir "FTYPE | FIND /I "CompressedFolder"
". (Eso está destinado a la línea de comando tradicional. A PowerShell no le gustarán esas comillas sin escapeFTYPE
).Si escribo "
ASSOC | FIND /C "."
", en mi computadora con Windows 10, entonces encuentro que tengo 339 líneas de salida cuando compruebo las asociaciones de archivos de esa manera.MS KB 162059 se trata de ajustar cómo Internet Explorer abre los documentos de Office.
Por lo tanto, pedir la lista de ejecutables predeterminados es demasiado vago. Los diferentes componentes de Microsoft Windows pueden usar diferentes recursos, por lo que la pregunta debe ser más específica para obtener una respuesta precisa.
La pregunta mencionó el uso de Explorer para hacer doble clic en un icono. Para ver la lista de ejecutables utilizados por eso, creo que querrás consultar el registro. Puede ejecutar esto desde un símbolo del sistema:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
(No voy a enumerarlos aquí. Hay 286 de ellos en mi computadora con Windows 10).
Eso enumera las extensiones. Para ver más información, incluidos detalles sobre las extensiones:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts /s
Entonces, como puede ver ahora, esta pregunta aparentemente inocente en realidad puede ser un tema bastante complejo. Creo que he defendido por qué una pregunta debe ser bastante específica para poder obtener una respuesta completa que aborde totalmente cómo un solo componente de Windows puede determinar las extensiones de nombre de archivo. En pocas palabras, no hay una sola respuesta para Windows, ya que Windows tiene múltiples componentes que se comportan de diferentes maneras. Espero haber comenzado a mostrar eso y señalar algunos recursos adicionales que muestran información relevante.
fuente