Extensiones de archivo por lotes
Tabla de contenidos
Con el símbolo del sistema puedes ejecutar operaciones en tu equipo desde la línea de comandos.
Puedes escribir los comandos directamente, pero para ejecutar varios a la vez resulta eficaz crear un archivo por lotes.
Escribe una serie de comandos en un archivo y ejecútalo con doble clic o desde el símbolo del sistema: todos los comandos se ejecutan de una vez.
Los archivos por lotes usan una de dos extensiones: .bat o .cmd. Ambas son habituales en las versiones actuales de Windows, pero difieren un poco en su origen y en el entorno para el que se diseñaron.
Acerca de los archivos por lotes
Los archivos con extensión .bat o .cmd contienen comandos que se ejecutan en el símbolo del sistema.
Al iniciarlos con doble clic, se abre el símbolo del sistema y los comandos se ejecutan de una vez.
En muchos casos aparece brevemente una ventana como la siguiente y se cierra enseguida. Esto indica que el archivo por lotes ha terminado de ejecutarse.
Salvo que el archivo incluya algún comando que espere deliberadamente una entrada del usuario, este es el comportamiento habitual.
Diferencias entre .bat y .cmd
.bat se usa desde la época de MS-DOS y .cmd se introdujo con la familia Windows NT.
En Windows 10 / 11 ambos se ejecutan normalmente con cmd.exe y la sintaxis básica es casi idéntica.
| Elemento | .bat | .cmd |
|---|---|---|
| Origen | Desde MS-DOS | Introducido con Windows NT |
| Programa que lo ejecuta | cmd.exe | cmd.exe |
| Sintaxis básica | Casi igual | Casi igual |
| ERRORLEVEL tras el éxito de algunos comandos | Puede no cambiar | Siempre se actualiza |
La diferencia de comportamiento es ERRORLEVEL
La diferencia de comportamiento más conocida es el tratamiento del código de salida (ERRORLEVEL).
En algunos comandos como PATH, SET, ASSOC y FTYPE, un archivo .cmd actualiza ERRORLEVEL (a 0) incluso cuando tienen éxito, mientras que en un .bat puede conservarse el valor anterior.
En un archivo por lotes que comprueba ERRORLEVEL para detectar errores, esta diferencia puede cambiar el comportamiento. Consulta el artículo relacionado sobre ERRORLEVEL para más detalles.
.cmd es una extensión de la familia Windows NT, por lo que no puede ejecutarse en MS-DOS ni en
Windows 95/98/Me. Si solo te diriges a las versiones actuales de Windows, puedes ignorarlo.
¿Cuál debo usar?
Si dudas, elige según estos criterios:
- Solo para Windows actual y quieres dejar claro que es un script de
cmd.exe→.cmd - Tus operaciones o documentos existentes usan siempre
.bat→.bat
Cómo cambiar la extensión
Para usar como archivo por lotes un archivo .txt guardado con el Bloc de notas, cambia su extensión.
En el Explorador de archivos, activa “Extensiones de nombre de archivo” en “Ver” y renombra el archivo a sample.bat o sample.cmd. Si las extensiones están ocultas, el nombre real puede acabar siendo sample.bat.txt, así que ten cuidado.
Para ver los pasos completos de creación, consulta el artículo relacionado sobre cómo crear archivos por lotes. Para el texto ilegible al guardar archivos por lotes, consulta el artículo relacionado sobre codificación de caracteres.
Ejecutar un archivo por lotes sin la extensión
Tanto .bat como .cmd figuran en el valor predeterminado de la variable de entorno PATHEXT. Por eso, en el símbolo del sistema puedes escribir solo sample y se ejecuta sample.bat o sample.cmd.
Los scripts de PowerShell usan la extensión .ps1 y son distintos de los archivos por lotes.