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 start
comando .
¿Hay alguna forma de ejecutar un archivo ejecutable que no tenga extensión exe?
windows
command-line
rsk82
fuente
fuente
Respuestas:
Sí, simplemente ingresar el nombre de archivo completo del programa generalmente funciona. (El
.exe
requisito solo existe en el shell de la GUI).(Sin embargo, puede ser que el archivo necesite una extensión, así que si no puede
MyProgram
ejecutarlo, cámbiele el nombreMyProgram.notexe
oMyProgram.lol
vuelva a intentarlo).fuente
.exe
a.zip
, intenté abrirlo a través de cmd.exe, y aún ejecutó el autoextractor en lugar de abrir WinZip.MZ
será ejecutado por cmd, verifique a continuaciónCualquier archivo con cualquier extensión y los primeros dos bytes
MZ
se tratarán como un EXE.Intenta lo siguiente:
a.txt
archivo,MZ
, guárdalo.cmd
, ve a su carpeta,a.txt
y vea el mensaje de error.Reemplace
MZ
conMS
e intente nuevamente; esta vez el bloc de notas se ejecutará con el archivo abierto.fuente
'' is not recognized as an internal or external command, operable program or batch file.
errorThis 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ó'file' is not recognized
error.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:
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:
Mi programa se inició y escribió la salida a la consola. Esto fue suficiente para mí, porque lo necesitaba solo para fines de prueba.
fuente