Escribiste un archivo batch o un script de PowerShell que funciona y ahora quieres dárselo a alguien como un único .exe: un archivo para hacer doble clic, sin preguntas de “abrir con” ni una consola llena de comandos.

No necesitas un “conversor de BAT a EXE” en línea para eso. Windows ya incluye una herramienta que lo hace, y PowerShell tiene un módulo gratuito y abierto que hace lo mismo con los scripts .ps1. Ambos funcionan en tu propio ordenador, así que el archivo que obtienes se crea a partir de tu script y nada más.

¿Tienes prisa?

  • Archivo batch (.bat / .cmd): pulsa Win + R, escribe iexpress y empaqueta el archivo con el comando de instalación cmd /c yourscript.bat.
  • PowerShell (.ps1): ejecuta Install-Module ps2exe -Scope CurrentUser una vez y luego Invoke-ps2exe .\script.ps1 .\script.exe.
  • Python (.py): pip install pyinstaller y luego pyinstaller --onefile script.py.
  • ¿Quieres un icono? Toma uno de cualquier programa con el Extractor de iconos gratuito.

Método 1: BAT a EXE con IExpress (integrado en Windows)

IExpress forma parte de Windows desde hace décadas. Se creó para hacer pequeños instaladores: empaqueta archivos en un solo EXE, los extrae en una carpeta temporal cuando se ejecuta el EXE y lanza un comando. Ese comando puede ser tu archivo batch.

  1. Pulsa Win + R, escribe iexpress y pulsa Enter.
  2. Elige Create new Self Extraction Directive file y haz clic en Next.
  3. Elige Extract files and run an installation command.
  4. Ponle un título al paquete (se muestra en el título de la ventana de cualquier mensaje).
  5. Solicitud de confirmación: No prompt. Contrato de licencia: Do not display a license.
  6. Packaged files: haz clic en Add y elige tu archivo .bat (y los archivos que necesite).
  7. Install Program: escribe tú mismo cmd /c yourscript.bat, con el nombre de tu archivo. Elegir el .bat de la lista sin más a menudo no hace nada, porque IExpress no inicia archivos batch directamente.
  8. Show window: Default para ver la consola, o Hidden para ejecutarlo en silencio.
  9. Mensaje final: No message.
  10. Package name: elige dónde guardar el EXE y marca Hide File Extracting Progress Animation from User y Store files using Long File Name inside Package.
  11. Restart: No restart. Guarda el archivo SED si quieres volver a generarlo más adelante y luego haz clic en Next para crear el EXE.

Algo que debes saber: el script se ejecuta desde una carpeta temporal, no desde donde está el EXE. Una línea como copy data.txt backup\ busca en esa carpeta temporal. Usa rutas completas (%USERPROFILE%\Documents\data.txt) para los archivos que el script lee o escribe fuera del paquete.

Método 2: PowerShell a EXE con ps2exe

ps2exe es un módulo de PowerShell gratuito y de código abierto, publicado en la PowerShell Gallery oficial. Envuelve un script .ps1 en un pequeño EXE que lo ejecuta, y te permite definir un icono, una versión y si aparece una ventana de consola.

  1. Abre PowerShell (no hacen falta permisos de administrador) e instala el módulo una vez:
    Install-Module ps2exe -Scope CurrentUser
    Si PowerShell te pide instalar el proveedor NuGet o confiar en el repositorio PSGallery, responde Y.
  2. Ve a la carpeta de tu script y crea el EXE:
    Invoke-ps2exe .\script.ps1 .\script.exe
  3. Opciones útiles:
    • -noConsole: sin ventana de consola (para scripts que muestran formularios o cuadros de mensaje).
    • -iconFile .\app.ico: el icono del EXE.
    • -requireAdmin: pide permisos de administrador al iniciarse.
    • -title "My Tool" -version "1.0.0": lo que Windows muestra en las propiedades del archivo.

¿Prefieres una ventana a la línea de comandos? Ejecuta Win-PS2EXE después de instalar el módulo: es la misma herramienta con un pequeño formulario.

Otros scripts: Python, AutoHotkey, Node.js

  • Python: pyinstaller --onefile script.py crea un único EXE en la carpeta dist. Añade --noconsole para un programa con ventana.
  • AutoHotkey: el instalador incluye Ahk2Exe: haz clic derecho en el archivo .ahk y elige Compile Script.
  • Node.js: las versiones recientes (20 y posteriores) pueden crear una aplicación ejecutable única (consulta la página “Single executable applications” de la documentación de Node.js).

¿De verdad necesitas un EXE?

A menudo basta con una opción más sencilla:

  • Un acceso directo. Haz clic derecho en el archivo .bat, Send to → Desktop (create shortcut), y luego ponle un icono al acceso directo en sus propiedades. Al hacer doble clic se ejecuta el script.
  • Una tarea programada. Para un script que debe ejecutarse a diario o al iniciar sesión, el Programador de tareas ejecuta un .bat o .ps1 directamente.
  • El propio script. Si las personas con quienes lo compartes usan Windows, un archivo .bat ya se ejecuta con doble clic.

Tres cosas que todo “conversor de BAT a EXE” omite

  1. Tu código no está oculto. Estas herramientas guardan el script dentro del EXE, a menudo como texto plano. Cualquiera puede leerlo, por ejemplo con nuestro Extractor de cadenas, que muestra el texto legible de cualquier archivo. Nunca pongas en él contraseñas, tokens ni claves.
  2. Los antivirus pueden quejarse. El malware usa los mismos envoltorios, así que Windows Defender y SmartScreen pueden advertir sobre un EXE de script totalmente inofensivo. Firmarlo con un certificado de firma de código ayuda, y Microsoft acepta informes de falsos positivos para archivos que hayas creado.
  3. Un EXE de un sitio web es un archivo que no puedes comprobar. Un conversor en línea te devuelve un archivo creado en un servidor del que no sabes nada. Por eso explicamos el método integrado en lugar de ofrecer uno: con IExpress o ps2exe sabes exactamente qué contiene el archivo.

¿Te han pasado un EXE y quieres saber qué ejecuta antes de abrirlo? Lee cómo analizar un EXE sin ejecutarlo.

Herramientas gratuitas para el resto del trabajo

Todas funcionan en tu navegador: tus archivos no se suben a ningún sitio.

Consigue un icono para tu EXE con el Extractor de iconos