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?
windows
command-line
rsk82
fuente
fuente

Respuestas:
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 nombreMyProgram.notexeoMyProgram.lolvuelva a intentarlo).fuente
.exea.zip, intenté abrirlo a través de cmd.exe, y aún ejecutó el autoextractor en lugar de abrir WinZip.MZserá ejecutado por cmd, verifique a continuaciónCualquier archivo con cualquier extensión y los primeros dos bytes
MZse tratarán como un EXE.Intenta lo siguiente:
a.txtarchivo,MZ, guárdalo.cmd, ve a su carpeta,a.txty vea el mensaje de error.Reemplace
MZconMSe 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 recognizederror.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