¿Cómo ejecutar un archivo ejecutable sin extensión EXE usando el script CMD?

19

La situación es que tengo una aplicación portátil que necesita tener una variable de entorno establecida. De otra manera, intenta establecer su configuración en el directorio de datos del programa del usuario.

Para evitar ejecutar el ejecutable en modo no portátil (para evitar que se ejecute sin ningún parámetro) borré la extensión ".exe" del archivo, pero no puedo ejecutarlo no solo con el mouse (que quiero) sino también con el startcomando .

¿Hay alguna forma de ejecutar un archivo ejecutable que no tenga extensión exe?

rsk82
fuente
Tu pregunta no está realmente clara. Si eliminó accidentalmente la extensión .EXE, ¿por qué no puede volver a agregarla? ¿Qué te impide hacerlo?
Karan
Lo he eliminado a propósito para no golpearlo accidentalmente para que el programa se ejecute sin ningún parámetro. Quiero estar seguro para ejecutar solo el programa con opciones al inicio.
rsk82

Respuestas:

14

Sí, simplemente ingresar el nombre de archivo completo del programa generalmente funciona. (El .exerequisito solo existe en el shell de la GUI).

(Sin embargo, puede ser que el archivo necesite una extensión, así que si no puede MyProgramejecutarlo, cámbiele el nombre MyProgram.notexeo MyProgram.lolvuelva a intentarlo).

usuario1686
fuente
1
Esto me sorprendió una vez, cuando cambié el nombre de un archivo Zip autoextraíble de .exea .zip, intenté abrirlo a través de cmd.exe, y aún ejecutó el autoextractor en lugar de abrir WinZip.
user1686
No conocía el truco con el cambio de extensión, ese programa podría necesitar uno ficticio, eso no es tan intuitivo. Pero de todos modos me encontré con otro problema que es que la aplicación en sí misma necesita que su ejecutable principal tenga un nombre estricto.
rsk82
1
Todo lo que comience MZserá ejecutado por cmd, verifique a continuación
Петър Петров
17

Cualquier archivo con cualquier extensión y los primeros dos bytes MZse tratarán como un EXE.

Intenta lo siguiente:

  1. Crea un nuevo a.txtarchivo,
  2. Escríbelo MZ, guárdalo.
  3. Abre cmd, ve a su carpeta,
  4. Escriba a.txty vea el mensaje de error.

Reemplace MZcon MSe intente nuevamente; esta vez el bloc de notas se ejecutará con el archivo abierto.

Петър Петров
fuente
1
No funciona en Windows 10. Siempre muestra un '' is not recognized as an internal or external command, operable program or batch file.error
phuclv
Acabo de probar en casa con Windows 10 Pro y de hecho muestra un error This version of D:\test.txt is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.anteriormente utilicé Windows 10 LTSB en el trabajo y no funcionó
phuclv
Todavía funciona en mi Windows 10 X64, el mismo ejemplo que el anterior.
Петър Петров
Si intenta ejecutar un archivo sin ninguna extensión, arrojará un 'file' is not recognizederror.
Stevoisiak
2

Traté de ejecutar el proceso desde el archivo sin la extensión .exe. Cuando no pude hacerlo desde cmd.exe, probé algunos comandos de PowerShell. Acá hay uno:

Proceso de inicio

La documentación dice acerca de la sintaxis predeterminada y UseShellExecute. Con solo:

Start-Process -FilePath .\my-program -Wait -NoNewWindow

el comando usa la sintaxis UseShellExecute y devuelve un error sobre la aplicación no asociada a ese tipo de archivo. Para forzar la sintaxis predeterminada, agregué el parámetro que UseShellExecute no tiene:

Start-Process -FilePath .\my-program -Wait -RedirectStandardError ./error.txt -NoNewWindow

Mi programa se inició y escribió la salida a la consola. Esto fue suficiente para mí, porque lo necesitaba solo para fines de prueba.

Sarrus
fuente