
Tengo un script por lotes bastante simple que me gustaría ejecutar usando una macro en mi elegante teclado para juegos. Sin embargo, SteelSeries Engine solo admite la apertura de un archivo .exe con los botones de macro. ¿Hay alguna manera de convertir el script en un ejecutable simple?
Respuesta1
Sí, de hecho. No es bonito, pero está limpio (no hay nada que limpiar después) y, de hecho, ¡está integrado en tu sistema!
En su C:\Windows\System32\
carpeta hay un archivo llamado iexpress.exe
.
- Haga clic derecho y
Run as administrator
. - Cree un nuevo SED y seleccione "Extraer archivos y ejecutar un comando de instalación".
- Agregue el script que desee y asegúrese de que en la siguiente pantalla configure el programa de instalación
cmd /c [your_script.bat]
donde [your_script.bat] esté el archivo de script que desea ejecutar. Si no hace esto, Windows intentará usar Command.com (la versión anterior del símbolo del sistema) que no se ha utilizado durante bastante tiempo. - Seleccione las preferencias (es posible que deba seleccionar "Almacenar archivos usando un nombre de archivo largo dentro del paquete), establezca una ruta de salida (al archivo .exe que desea crear) y seleccione "Sin reinicio".
- Haga clic en Siguiente y debería tener su .exe.
Solo una nota, este archivo en realidad solo actúa como un contenedor para su secuencia de comandos, y la secuencia de comandos en sí se ejecuta en una carpeta temporal creada durante la ejecución (y eliminada después), así que asegúrese de no utilizar ninguna ruta relativa.
Respuesta2
Aquí hay 2 programas gratuitos que recomiendo encarecidamente para crear archivos EXE a partir de archivos por lotes.
Puede utilizar ambos programas con una GUI sencilla.
Bat To Exe Converter
También admite comandos CLI ( \?
marcar para obtener ayuda). Ejemplo básico de la documentación:
Bat_To_Exe_Converter.exe -bat mybatfile.bat -save myprogram.exe -icon myicon
Respuesta3
Si el software de su teclado admite el paso de argumentos al ejecutable (lo cual no es improbable), no es necesario.
cmd.exe /c <path to batchfile>
ejecutaría el archivo por lotes y le daría un ejecutable válido para nombrar el software del teclado. No se necesita conversión, lo que significa que siempre puedes realizar cambios fácilmente en tu bate sin necesidad de pasos adicionales.
Respuesta4
Las diferentes versiones de Windows tienen efectos diferentes para los mismos comandos de archivos por lotes y algunos comandos están limitados a algunos sistemas Windows, por ejemplo. findstr
y shutdown
.
Por cierto, Win 10 CMD no permite cambios SETLOCAL
en la línea de comando. Está bien para archivos por lotes.
Consulte este enlace para conocer diferentes comandos para reiniciar diferentes versiones de Windows: https://www.computerhope.com/issues/ch000321.htm
Entonces, si compilara un script en Win 98 y lo ejecutara en Win 8.1, obtendría resultados inesperados o es posible que los scripts ni siquiera funcionaran. Vea la lista de comandos aquí: https://www.ionos.com/digitalguide/server/know-how/windows-cmd-commands/
Por esta razón, se necesitaría un compilador diferente en cada versión de Windows, preferiblemente que generara código binario (genérico) que pueda ejecutarse en tantos chips de CPU como sea posible, con los mismos conjuntos de instrucciones. Una solución alternativa que ofrecen la mayoría de los programas es empaquetar el script en un archivo exe que desempaquetará y ejecutará el script cuando se abra/ejecute, por ejemplo. Bat_To_Exe_Converter, Bat2Exe, BatchCompiler o Winzip: https://support.winzip.com/hc/en-us/articles/115011794948-What-is-a-Self-Extracting-Zip-File-
Para resolver este problema de portabilidad, las máquinas virtuales se han vuelto más populares y de ahí el surgimiento de Java y scripts relacionados.
Sin embargo, esto seguiría siendo código interpretado y no tan rápido como el código compilado. Incluso el código de bytes (código intermedio) de las máquinas virtuales aún debe compilarse, incluso si es (JIT): https://aboullaite.me/understanding-jit-compiler-just-in-time-compiler/
En resumen, puede obtener un archivo exe que contendrá un script que será interpretado por el procesador de comandos, pero no será un archivo ejecutable nativo, lo que significa que no se ejecutará sin un host en el sistema operativo Windows.