Pagina inicial » como » Converter um script em lotes (BAT) em um arquivo executável (EXE)

    Converter um script em lotes (BAT) em um arquivo executável (EXE)

    Quando você chegar a isso, arquivos em lote e arquivos executáveis ​​funcionam da mesma maneira. Ambos são simplesmente um conjunto de instruções e lógica para o Windows executar. Então, por que você iria querer converter um arquivo em lotes para um executável se eles essencialmente funcionassem da mesma forma? Aqui estão algumas razões:

    • Portabilidade - você pode incluir ferramentas adicionais no seu arquivo EXE que o arquivo de lote depende.
    • Proteção - um EXE fornece proteção para o script de origem para garantir que ele não seja modificado inadvertidamente.
    • Conveniência - Arquivos executáveis ​​podem ser fixados no Menu Iniciar do Windows e / ou na Barra de tarefas do Windows 7.

    Com o script abaixo, você pode criar facilmente seu próprio arquivo executável a partir de um arquivo de lote, completo e requerido ferramentas incorporadas.

    Configuração

    Este script aproveita um SFX (SelF eXtractor) avançado do 7-Zip para agrupar e executar o arquivo de lote com todas as ferramentas incluídas. Então você precisará baixar (links fornecidos no final) estes e extraí-los para um único diretório.

    Depois de ter tudo baixado, defina a variável 'PathTo7Zip' no script para o local onde esses arquivos baixados.

    O script

    @ECHO OFF ECHO Faça EXE a partir do BAT ECHO Escrito por: Jason Faulkner ECHO SysadminGeek.com ECHO. ECO. REM Uso: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] […] REM REM Parâmetros necessários: REM BatFileToConvert REM Arquivo em lote de origem a ser usado para produzir o arquivo Exe de saída. Parâmetros opcionais do REM REM: REM IncludeFile REM Arquivos adicionais a serem incluídos no arquivo Exe. REM Você pode incluir ferramentas externas usadas pelo arquivo em lotes para que elas estejam disponíveis na máquina em execução. Configuração SETLOCAL REM (sem aspas necessárias): SET PathTo7Zip = REM ---- Não modifique nada abaixo desta linha ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% TEMP% MakeEXE.7z" REM Remover arquivos existentes SEXIST% OutputFile% DEL% OutputFile% REM Compilar arquivo fonte ECHO "% ~ dpnx1">% SourceFiles%: AddInclude SE % 2 ==  GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM arquivo de configuração da compilação ECHO @ Instalação @! UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM Build EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Fonte7ZFile%% OutputFile% REM Limpar SE% EXIST% SourceFiles% DEL% SourceFiles% SE EXIST% Config% DEL% Config % SE EXIST% Source7ZFile% DEL% origem7ZFile% ENDLOCAL

    Conclusão

    É importante observar que, embora o arquivo resultante seja executado exatamente da mesma forma que o arquivo BAT de origem, esse não é um lote verdadeiro para a conversão executável. O arquivo resultante é um EXE, no entanto, destina-se a ser usado para instaladores de extração automática. Quando você executa o arquivo EXE resultante, o processo é algo como isto:

    1. O conteúdo do arquivo EXE é extraído para o diretório temporário.
    2. O arquivo de configuração gerado pelo script é lido.
    3. O arquivo em lote contido no arquivo EXE é executado em uma nova janela de comando.
    4. Uma vez terminado, os arquivos temporários são removidos.

    No Windows Vista e no novo sistema operacional, você poderá ver a seguinte caixa de mensagem depois que o script for executado. Depois de selecionar 'Este programa foi instalado corretamente', a caixa de mensagem não será exibida no futuro para este arquivo.

    Porque o arquivo EXE é iniciado em uma nova janela, a maneira típica de log de saída (usando o caractere '>') não funcionará conforme o esperado. Para registrar a saída, você precisaria manipular isso nativamente em seu script de origem.

    Apesar desses pequenos inconvenientes, poder converter um arquivo de lote em um executável pode realmente ser útil.

    Links

    Baixar Make EXE do BAT Script do Sysadmin Geek

    Download da ferramenta de linha de comando 7-Zip

    Baixar 7-Zip Advanced 7zSD SFX