Cómo crear un archivo por lotes
Un archivo por lotes es un archivo de texto que reúne varios comandos del símbolo del sistema para ejecutarlos de una vez. Al hacer doble clic, los comandos que escribiste se ejecutan automáticamente, uno tras otro.
Los archivos por lotes usan la extensión .bat o .cmd. Ambas funcionan casi igual (.cmd es el formato para Windows NT y posteriores, y trata de forma distinta el código de salida, ERRORLEVEL, de algunos comandos). Este artículo usa la extensión más extendida, .bat.
Los archivos por lotes permiten automatizar tareas como:
- Hacer copias de seguridad de archivos a diario
- Crear muchas carpetas a la vez
- Iniciar aplicaciones o cambiar ajustes
- Ordenar o eliminar archivos de registro
Puedes crear un archivo por lotes sin saber programar. Basta con escribir en un archivo de texto los comandos que usarías en el símbolo del sistema.
Cómo crear un archivo por lotes
Paso 1: abrir un archivo nuevo en el Bloc de notas
Abre el Bloc de notas. Búscalo en el menú Inicio, o pulsa Win + R, escribe notepad y pulsa Enter.
Paso 2: escribir los comandos
Escribe lo siguiente en el Bloc de notas.
@echo off
echo ¡Hola! Se ejecutó el archivo por lotes.
pause
Más adelante se explica cada comando. Por ahora, escribe estas tres líneas tal cual.
Paso 3: guardar con la extensión .bat
Elige «Archivo» → «Guardar como» en el Bloc de notas. En el cuadro de diálogo, asegúrate de:
- Escribir el nombre del archivo como
"hello.bat"(entre comillas dobles) - Cambiar el tipo a «Todos los archivos (
*.*)» - Establecer la codificación en «ANSI»
Sin comillas dobles ("), el archivo puede guardarse como hello.bat.txt. Escríbelo siempre como "hello.bat".
Si el icono del archivo en el Explorador cambia a un engranaje, Windows lo reconoce como archivo por lotes.
Paso 4: ejecutar con doble clic
Haz doble clic en el hello.bat guardado. Se abre una ventana del símbolo del sistema y se ejecuta.
¡Hola! Se ejecutó el archivo por lotes.
Presione una tecla para continuar . . .
Si ves esto, funcionó. Pulsa cualquier tecla para cerrar la ventana.
Qué significa @echo off
@echo off es una línea habitual al inicio de un archivo por lotes.
echo off — Evita que se muestren los propios comandos mientras se ejecuta el archivo. Normalmente cada comando ejecutado se muestra en pantalla; con echo off solo aparecen los resultados.
@ — Oculta también el propio comando echo off.
Esta es la diferencia.
Sin @echo off:
C:\Users\user>echo Hola
Hola
C:\Users\user>pause
Presione una tecla para continuar . . .
Con @echo off:
Hola
Presione una tecla para continuar . . .
Salvo que tengas un motivo para no hacerlo, empieza tus archivos por lotes con @echo off.
El comando echo muestra texto en pantalla, como en echo texto a mostrar. Consulta
Qué hace el comando pause
El comando pause detiene el archivo por lotes y muestra «Presione una tecla para continuar …».
Cuando ejecutas un archivo por lotes con doble clic, la ventana se cierra en cuanto termina el proceso. Poner pause al final la mantiene abierta para que puedas leer el resultado.
Si ejecutas el archivo desde un símbolo del sistema ya abierto, la ventana no se cierra sola, así que pause no es imprescindible. Es más importante cuando lo ejecutas con doble clic.
Consulta
para más detalles.Escribir comentarios con rem
Usa el comando rem para escribir comentarios. Las líneas que empiezan por rem se ignoran.
@echo off
rem Este archivo por lotes es un ejemplo
rem Autor: Taro Yamada
rem Fecha de creación: 2026-04-24
echo Iniciando...
rem Aquí se realiza algún proceso
echo Terminado.
pause
Los comentarios facilitan entender el archivo cuando lo revisas más tarde o lo usa otra persona.
También puedes escribir comentarios con :: en lugar de rem, pero puede causar errores dentro de bloques IF y bucles FOR. rem es más seguro. Consulta
Ejemplo práctico: un archivo por lotes de copia de seguridad
Este archivo copia los archivos de una carpeta a una carpeta de copia de seguridad con la fecha actual en el nombre.
@echo off
rem ========================================
rem Script de copia de seguridad de archivos
rem Cada vez que se ejecuta, copia a una carpeta con la fecha
rem ========================================
setlocal
rem Establecer el origen y el destino
set SOURCE=C:\Users\%USERNAME%\Documents\Trabajo
set BACKUP_ROOT=D:\Backup
rem Obtener la fecha actual para el nombre de la carpeta (p. ej. 20260424)
rem Nota: el formato de %DATE% depende de la configuración regional (aquí se supone aaaa/mm/dd)
set TODAY=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
set DEST=%BACKUP_ROOT%\backup_%TODAY%
echo Iniciando la copia de seguridad...
echo Origen: %SOURCE%
echo Destino: %DEST%
echo.
rem Crear la carpeta de destino si no existe
if not exist "%DEST%" mkdir "%DEST%"
rem Copiar los archivos
xcopy "%SOURCE%\*" "%DEST%\" /E /Y /I
echo.
echo Copia de seguridad completada.
echo Guardada en: %DEST%
echo.
endlocal
pause
Puntos clave del script:
set— Define una variable. Guardar las rutas enSOURCEyDESTfacilita cambiarlas después%DATE%— Variable de entorno con la fecha actual.%DATE:~0,4%extrae una parte. Su formato cambia según la configuración regional, así que ajusta las posiciones si tu fecha no tiene el formato aaaa/mm/ddif not exist— Ejecuta el comando solo si la carpeta no existexcopy— Copia archivos./Eincluye subcarpetas,/Yomite la confirmación de sobrescritura e/Itrata el destino como carpeta
Cambia las rutas de origen (SOURCE) y destino (BACKUP_ROOT) según tu entorno. Si indicas una ruta que no existe, se produce un error.
Ejecutar como administrador
Algunos archivos por lotes realizan operaciones que requieren permisos de administrador, como escribir en carpetas del sistema o controlar servicios.
Haz clic derecho en el archivo y elige «Ejecutar como administrador». Consulta
para más detalles.Conviene indicar en un comentario que el archivo debe ejecutarse como administrador.
@echo off
rem * Ejecuta este archivo por lotes como administrador
rem Haz clic derecho y elige "Ejecutar como administrador"
echo Ejecutando con permisos de administrador...
pause
Errores comunes y soluciones
Texto ilegible (problemas de codificación)
Si un archivo por lotes con caracteres no ASCII, como acentos o japonés, muestra caracteres ilegibles, lo más probable es que la causa sea la codificación del archivo.
Las versiones recientes del Bloc de notas (Windows 10 versión 1903 y posteriores, y Windows 11) guardan por defecto en UTF-8 (sin BOM). Sin embargo, el símbolo del sistema usa una página de códigos heredada que depende de la configuración regional del sistema, por lo que un archivo UTF-8 con caracteres no ASCII puede mostrar caracteres ilegibles o no ejecutarse correctamente. Al guardar, establece la codificación en «ANSI».
Si necesitas UTF-8, añade chcp 65001 > nul en la línea siguiente a @echo off. En algunos entornos puede ser inestable. Consulta
La extensión queda como .txt
Si no pones el nombre del archivo entre comillas dobles al guardar en el Bloc de notas, puede guardarse como hello.bat.txt. Si el Explorador oculta las extensiones, activa «Vista» → «Extensiones de nombre de archivo» para comprobarlo.
Rutas con espacios
Las rutas que contienen espacios deben ir entre comillas dobles.
@echo off
rem Incorrecto: la ruta con espacio no está entre comillas
copy C:\My Documents\file.txt D:\Backup\
rem Correcto: rutas entre comillas dobles
copy "C:\My Documents\file.txt" "D:\Backup\"
Windows tiene muchas carpetas con espacios, como Program Files y My Documents. Acostúmbrate a poner siempre las rutas entre comillas dobles.
Resumen
| Elemento | Detalle |
|---|---|
| Cómo crearlo | Escribir los comandos en el Bloc de notas y guardar con la extensión .bat |
@echo off | Línea habitual que oculta los propios comandos |
echo | Muestra texto en pantalla |
pause | Espera una tecla para que la ventana no se cierre |
rem | Escribe un comentario |
| Codificación | Se recomienda ANSI (página de códigos heredada) |
| Rutas con espacios | Entre comillas dobles |