Cómo escribir un script por lotes en Windows

¿Sabes cómo usar el símbolo del sistema? Si lo hace, puede escribir un archivo por lotes. En su forma más simple, un archivo por lotes (o script por lotes) es una lista de varios comandos que se ejecutan cuando hace doble clic en el archivo. Los archivos por lotes se remontan a DOS , pero aún funcionan en versiones modernas de Windows.

Los scripts de PowerShell y los scripts de Bash pueden ser más poderosos, pero los archivos por lotes aún pueden ser muy útiles si necesita ejecutar comandos básicos de Windows.

Conceptos básicos de archivos por lotes

Un archivo por lotes es simplemente un archivo de texto guardado con la extensión de archivo .bat. Puede escribir uno usando el Bloc de notas o un editor de texto más avanzado como Notepad ++ , pero no use un procesador de texto como Microsoft Word.

Creemos un archivo por lotes simple. Primero, abra el Bloc de notas. Escriba las siguientes líneas en él:

ECHO APAGADO
ECHO Hola Mundo
PAUSA

A continuación, guarde el archivo haciendo clic en Archivo> Guardar. Déle el nombre que desee, pero reemplace la extensión de archivo .txt predeterminada con la extensión .bat.

Por ejemplo, es posible que desee nombrarlo hello_world.bat.

Ahora tiene un archivo por lotes con la extensión de archivo .bat. Haz doble clic en él para ejecutarlo. Este archivo por lotes en particular desactiva ECHO (que limpia la salida al ocultar los comandos para que no se impriman en el indicador, imprime el texto «Hola mundo» en la pantalla y luego espera a que presione una tecla antes de que finalice.

Si no lo agregó PAUSEal archivo, el archivo por lotes simplemente ejecutará sus comandos y luego se cerrará automáticamente. En este caso, imprimiría «Hola mundo» en la ventana y luego cerraría inmediatamente la ventana del símbolo del sistema. Cuando desee ejecutar comandos rápidamente sin ver el resultado, puede omitirlo. Si está ejecutando varios comandos, puede colocar el PAUSEcomando entre ellos.

Escribir un archivo por lotes más complejo

Es fundamentalmente sencillo crear un archivo por lotes. Lo único que necesita cambiar es lo que escribe en el Bloc de notas. Para ejecutar varios comandos, escriba cada uno en su propia línea y el archivo por lotes ejecutará cada uno en orden.

Por ejemplo, digamos que queremos escribir un archivo por lotes que ejecute varios comandos de diagnóstico de red . Es posible que deseemos ejecutar ipconfig /allpara ver la información de la red, ping google.compara ver si los servidores de Google están respondiendo y tracert google.compara ejecutar un traceroute a google.com y ver si hay algún problema en el camino.

En la forma más básica, simplemente podríamos colocar todos esos comandos en un archivo por lotes, uno tras otro, así:

ipconfig / all
ping google.com
tracert google.com
PAUSA

Cuando ejecutamos este archivo, solo vemos la salida de cada comando inmediatamente después del otro. Pero esta no es necesariamente la forma ideal de escribir un archivo por lotes.

Por ejemplo, es posible que desee agregar líneas de comentarios. Cualquier línea que comience con a ::es una línea de comentario y no se ejecutará. Eso los convierte en una forma útil de explicar lo que está sucediendo en el archivo para cualquier persona a la que pueda dárselo, o para su yo futuro, que podría olvidar por qué puso un comando determinado allí.

Es posible que también desee agregar el comando «ECHO OFF» al principio del archivo. Por lo general, se agrega al inicio de la mayoría de los archivos por lotes. Cuando haga esto, los comandos en sí no se imprimirán en el símbolo del sistema, pero los resultados sí lo serán. Por ejemplo, verá los detalles de la conexión de red pero no la línea «ipconfig / all». A la mayoría de las personas no les importa ver los comandos, por lo que esto puede limpiar la salida.

Así que esto es lo que podría parecer:

:: Este archivo por lotes busca problemas de conexión a la red.
ECHO APAGADO
:: Ver detalles de la conexión de red
ipconfig / all
:: Compruebe si se puede acceder a Google.com
ping google.com
:: Ejecute un traceroute para verificar la ruta a Google.com
tracert google.com
PAUSA

Hay otras direcciones que puede seguir con un archivo por lotes como este. Por ejemplo, es posible que desee que su secuencia de comandos por lotes ejecute los comandos anteriores y luego volcar la salida en un archivo de texto que puede ver más tarde. Para hacerlo, usaría el >>operador después de cada comando para agregar su salida al archivo de texto. Como vamos a leer la salida del archivo de texto de todos modos, podemos omitir el PAUSEcomando.

:: Este archivo por lotes busca problemas de conexión a la red
:: y guarda la salida en un archivo .txt.
ECHO APAGADO
:: Ver detalles de la conexión de red
ipconfig / all >> results.txt
:: Compruebe si se puede acceder a Google.com
ping google.com >> results.txt
:: Ejecute un traceroute para verificar la ruta a Google.com
tracert google.com >> results.txt

Después de ejecutar el script anterior, encontrará un archivo llamado results.txt en la misma carpeta que el archivo por lotes con la salida de los comandos. La ventana del símbolo del sistema se cerrará automáticamente una vez que el archivo por lotes termine de ejecutarse.

El ejemplo que usamos anteriormente se basa en la impresión de información en el símbolo del sistema para que el usuario pueda leerla. Sin embargo, muchos archivos por lotes están diseñados para ejecutarse de forma no interactiva. Por ejemplo, podría tener un archivo por lotes que elimine varios archivos o directorios cada vez que haga doble clic en él. Solo necesitaría usar el delcomando para eliminar archivos o el deltreecomando para eliminar directorios. Recuerde, solo está usando los mismos comandos que ejecutaría en una ventana del símbolo del sistema.

Fundamentally, that’s the point of most batch files–just running a few commands one after another. However, batch files can actually be significantly more complex than this. For example, you can use “IF” statements along with the “GOTO” command to check the value of something and then skip to different lines depending on the result. This is more like writing an actual small program than a quick and dirty script. That’s one reason why .bat files are sometimes called “batch programs.” If you want to do something more complex, you’ll find plenty of guides to doing specific things with batch programming online. But now, you know the basics of how to throw a simple one together.