Página principal » cómo » Convertir un script por lotes (BAT) en un archivo ejecutable (EXE)

    Convertir un script por lotes (BAT) en un archivo ejecutable (EXE)

    Cuando llegas a eso, los archivos por lotes y los archivos ejecutables funcionan de la misma manera. Ambos son simplemente un conjunto de instrucciones y lógica para ejecutar Windows. Entonces, ¿por qué querría convertir un archivo por lotes en un ejecutable si esencialmente funcionan de la misma manera? Aquí hay algunas razones:

    • Portabilidad: puede incluir herramientas adicionales en su archivo EXE de las que depende el archivo por lotes.
    • Protección: un EXE proporciona protección para su script de origen para garantizar que no se modifique inadvertidamente.
    • Conveniencia: los archivos ejecutables se pueden anclar al Menú de Inicio de Windows y / o a la Barra de tareas de Windows 7.

    Con la siguiente secuencia de comandos, puede crear fácilmente su propio archivo ejecutable a partir de un archivo por lotes, completo con las herramientas integradas necesarias..

    Configuración

    Esta secuencia de comandos aprovecha un SFX avanzado 7-Zip (SelF eXtractor) para agrupar y ejecutar el archivo por lotes con cualquier herramienta incluida. Por lo tanto, deberá descargar (los enlaces que se proporcionan al final) y extraerlos en un solo directorio..

    Una vez que haya descargado todo, establezca la variable 'PathTo7Zip' en la secuencia de comandos en la ubicación donde se descargaron estos archivos.

    La secuencia de comandos

    @ECHO OFF ECHO Crear EXE desde BAT ECHO Escrito por: Jason Faulkner ECHO SysadminGeek.com ECHO. ECO. Uso de REM: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...] REM REM Parámetros requeridos: REM BatFileToConvert REM Archivo por lotes de origen a utilizar para producir el archivo Exe de salida. REM REM Parámetros opcionales: REM IncludeFile REM Archivos adicionales para incluir en el archivo Exe. REM Puede incluir herramientas externas utilizadas por el archivo por lotes para que estén disponibles en la máquina ejecutora. SETLOCAL REM Configuración (no se requieren comillas): SET PathTo7Zip = REM ---- No modifique nada debajo de esta línea ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Eliminar archivos existentes IF EXIST% OutputFile% DEL% OutputFile% REM Construir archivo fuente ECHO "% ~ dpnx1">% SourceFiles%: AddInclude IF % 2 ==  GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM Crear archivo de configuración ECHO ;! @ Install @! UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM Build EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Limpiar SI EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config % IF EXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL

    Conclusión

    Es importante tener en cuenta que, si bien el archivo resultante se ejecuta exactamente igual que el archivo BAT de origen, este no es un verdadero lote de conversión ejecutable. El archivo resultante es un EXE, sin embargo, está destinado a ser usado por instaladores autoextraíbles. Cuando ejecutas el archivo EXE resultante, el proceso es algo como esto:

    1. El contenido del archivo EXE se extrae al directorio temporal..
    2. Se lee el archivo de configuración generado por el script..
    3. El archivo por lotes contenido en el archivo EXE se ejecuta en una nueva ventana de comandos.
    4. Una vez terminado, los archivos temporales se eliminan..

    En Windows Vista y los nuevos sistemas operativos, puede ver el siguiente cuadro de mensaje después de ejecutar el script. Después de seleccionar 'Este programa se instaló correctamente', el cuadro de mensaje no se mostrará en el futuro para este archivo..

    Debido a que el archivo EXE se inicia en una nueva ventana, la forma típica de registrar la salida (usando el carácter '>') no funcionará como se esperaba. Para registrar el resultado, debe manejar esto de forma nativa en su script de origen.

    A pesar de estos pequeños inconvenientes, poder convertir un archivo por lotes en un ejecutable puede ser realmente útil..

    Campo de golf

    Descargar Make EXE desde BAT Script desde Sysadmin Geek

    Descargar 7-Zip Command Line Tool

    Descargar 7-Zip Advanced 7zSD SFX