Você escreveu um arquivo batch ou um script PowerShell que funciona e agora quer entregá-lo a alguém como um único .exe: um arquivo para clicar duas vezes, sem perguntas de “abrir com” e sem um console cheio de comandos.

Para isso, você não precisa de um “conversor de BAT para EXE” online. O Windows já inclui uma ferramenta que faz isso, e o PowerShell tem um módulo gratuito e aberto que faz o mesmo para scripts .ps1. Ambos rodam no seu próprio computador, então o arquivo gerado é feito a partir do seu script e de nada mais.

Com pressa?

  • Arquivo batch (.bat / .cmd): pressione Win + R, digite iexpress e empacote o arquivo com o comando de instalação cmd /c yourscript.bat.
  • PowerShell (.ps1): execute Install-Module ps2exe -Scope CurrentUser uma vez e depois Invoke-ps2exe .\script.ps1 .\script.exe.
  • Python (.py): pip install pyinstaller e depois pyinstaller --onefile script.py.
  • Quer um ícone? Pegue um de qualquer programa com o Icon Extractor gratuito.

Método 1: BAT para EXE com IExpress (nativo do Windows)

O IExpress faz parte do Windows há décadas. Ele foi criado para montar pequenos instaladores: empacota arquivos em um EXE, extrai tudo para uma pasta temporária quando o EXE roda e inicia um comando. Esse comando pode ser o seu arquivo batch.

  1. Pressione Win + R, digite iexpress e pressione Enter.
  2. Escolha Create new Self Extraction Directive file e clique em Next.
  3. Escolha Extract files and run an installation command.
  4. Dê um título ao pacote (ele aparece na barra de título de qualquer mensagem).
  5. Pedido de confirmação: No prompt. Contrato de licença: Do not display a license.
  6. Packaged files: clique em Add e selecione o seu arquivo .bat (e os arquivos de que ele precisa).
  7. Install Program: digite cmd /c yourscript.bat você mesmo, com o nome do seu arquivo. Só escolher o .bat na lista muitas vezes não faz nada, porque o IExpress não inicia arquivos batch diretamente.
  8. Show window: Default para ver o console ou Hidden para rodar em silêncio.
  9. Mensagem final: No message.
  10. Package name: escolha onde salvar o EXE e marque Hide File Extracting Progress Animation from User e Store files using Long File Name inside Package.
  11. Restart: No restart. Salve o arquivo SED se quiser gerar de novo depois e clique em Next para criar o EXE.

Um detalhe importante: o script roda a partir de uma pasta temporária, não de onde está o EXE. Uma linha como copy data.txt backup\ procura nessa pasta temporária. Use caminhos completos (%USERPROFILE%\Documents\data.txt) para arquivos que o script lê ou grava fora do pacote.

Método 2: PowerShell para EXE com ps2exe

ps2exe é um módulo PowerShell gratuito e de código aberto, publicado na PowerShell Gallery oficial. Ele envolve um script .ps1 em um pequeno EXE que o executa e permite definir um ícone, uma versão e se uma janela de console aparece.

  1. Abra o PowerShell (sem precisar de direitos de administrador) e instale o módulo uma vez:
    Install-Module ps2exe -Scope CurrentUser
    Se o PowerShell pedir para instalar o provedor NuGet ou confiar no repositório PSGallery, responda Y.
  2. Vá até a pasta do seu script e gere o EXE:
    Invoke-ps2exe .\script.ps1 .\script.exe
  3. Opções úteis:
    • -noConsole: sem janela de console (para scripts que mostram formulários ou caixas de mensagem).
    • -iconFile .\app.ico: o ícone do EXE.
    • -requireAdmin: pede direitos de administrador ao iniciar.
    • -title "My Tool" -version "1.0.0": o que o Windows mostra nas propriedades do arquivo.

Prefere uma janela à linha de comando? Execute Win-PS2EXE depois de instalar o módulo: é a mesma ferramenta com um pequeno formulário.

Outros scripts: Python, AutoHotkey, Node.js

  • Python: pyinstaller --onefile script.py gera um único EXE na pasta dist. Adicione --noconsole para um programa com janela.
  • AutoHotkey: o instalador inclui o Ahk2Exe: clique com o botão direito no arquivo .ahk e escolha Compile Script.
  • Node.js: versões recentes (20 ou superior) podem gerar um aplicativo executável único (veja a página “Single executable applications” da documentação do Node.js).

Você precisa mesmo de um EXE?

Muitas vezes uma opção mais simples resolve:

  • Um atalho. Clique com o botão direito no arquivo .bat, Send to → Desktop (create shortcut), e depois dê um ícone ao atalho nas propriedades dele. Um clique duplo executa o script.
  • Uma tarefa agendada. Para um script que deve rodar todo dia ou ao entrar no sistema, o Agendador de Tarefas executa um .bat ou .ps1 diretamente.
  • O próprio script. Se as pessoas com quem você compartilha usam Windows, um arquivo .bat já roda com clique duplo.

Três coisas que todo “conversor de BAT para EXE” não conta

  1. Seu código não fica oculto. Essas ferramentas guardam o script dentro do EXE, muitas vezes como texto puro. Qualquer pessoa pode lê-lo de volta, por exemplo com o nosso String Extractor, que lista o texto legível de qualquer arquivo. Nunca coloque senhas, tokens ou chaves nele.
  2. Antivírus podem reclamar. Malwares usam os mesmos empacotadores, então o Windows Defender e o SmartScreen podem alertar sobre um EXE de script totalmente inofensivo. Assiná-lo com um certificado de assinatura de código ajuda, e a Microsoft aceita relatos de falso positivo para arquivos criados por você.
  3. Um EXE de um site é um arquivo que você não consegue verificar. Um conversor online devolve um arquivo gerado em um servidor sobre o qual você não sabe nada. Por isso explicamos o caminho nativo em vez de oferecer um: com IExpress ou ps2exe, você sabe exatamente o que foi para dentro do arquivo.

Recebeu um EXE de alguém e quer saber o que ele executa antes de abrir? Leia como analisar um EXE sem executá-lo.

Ferramentas grátis para o resto do trabalho

Todas rodam no seu navegador: seus arquivos não são enviados para lugar nenhum.

Pegue um ícone para o seu EXE com o Icon Extractor