14Sep

Cómo escribir un script por lotes en Windows

¿Sabes cómo utilizar 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 secuencia de comandos por lotes) es una lista de varios comandos que se ejecutan cuando hace doble clic en el archivo. Los archivos por lotes vuelven a DOS, pero aún funcionan en versiones modernas de Windows. Los scripts de

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

Batch File Basics

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 textos como Microsoft Word.

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

ECHO OFF ECHO Hello World PAUSE

A continuación, guarde el archivo haciendo clic en Archivo & gt;Salvar. Dale el nombre que quieras, pero reemplaza la extensión de archivo. txt predeterminada con la extensión. bat.

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

Ahora tiene un archivo por lotes con la extensión de archivo. bat. Haz doble clic para ejecutarlo. Este archivo de lote en particular desactiva ECHO( que limpia la salida ocultando los comandos para que no se impriman en el aviso, imprime el texto "Hello World" en la pantalla y luego espera a que presione una tecla antes de que termine)

Ifno agregó PAUSE al archivo, el archivo por lotes simplemente ejecutará sus comandos y luego se cerrará automáticamente. En este caso, imprimiría "Hello World" en la ventana y luego cerraría inmediatamente la ventana del símbolo del sistema.ejecute comandos rápidamente sin ver la salida, puede omitir esto. Si está ejecutando varios comandos, puede colocar el comando PAUSE entre ellos.

Escribir un archivo por lotes más complejo

Es básicamente simple crear un archivo por lotes. Lo que debe 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, supongamos que queremos escribir un archivo por lotes quecorre sevComandos de diagnóstico de la red general. Es posible que deseemos ejecutar ipconfig / all para ver la información de la red, hacer ping a google.com para ver si los servidores de Google responden y tracert google.com para ejecutar un traceroute a google.com y ver si hay algún problema en el camino.

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

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

Cuando ejecutamos este archivo, hemossimplemente vea la salida de cada comando justo 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 cualquiera que pueda dárselo, o para su yo futuro, que podría olvidar por qué puso un cierto comando allí.

Es posible que también desee agregar el comando "ECHO OFF" al principio del archivo. Esto normalmente se agrega al inicio de la mayoría de los archivos por lotes. Al hacer esto, los comandos mismos no se imprimirán en el Símbolo del sistema, pero los resultados 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, así que esto puede limpiar el resultado.

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

: : Este archivo por lotes comprueba si hay problemas de conexión de red. ECHO OFF: : Ver los detalles de la conexión de red ipconfig / all: : Comprobar si Google.com es accesible ping google.com: : Ejecutar un traceroute para verificar la ruta a Google.com tracert google.com PAUSE

Hay otras instrucciones que puede utilizarcon un archivo por lotes como este. Por ejemplo, es posible que desee que su script por lotes ejecute los comandos anteriores y luego descargue el resultado en un archivo de texto que puede ver más adelante. Para hacerlo, usarías el & gt; & gt;operador después de cada comando para agregar su salida al archivo de texto. Como vamos a leer el resultado del archivo de texto de todos modos, podemos omitir el comando PAUSE.

: : Este archivo por lotes comprueba si hay problemas de conexión de red: : y guarda el resultado en un archivo. txt. ECHO OFF: : Ver detalles de conexión de red ipconfig / all & gt; & gt;results.txt: : Comprueba si se puede acceder a Google.com ping google.com & gt; & gt;results.txt: : Ejecuta un traceroute para verificar la ruta a Google.com tracert google.com & gt; & gt;resultados.txt

Después de ejecutar el script anterior, encontrará un archivo llamado results.txt en la misma carpeta que el archivo por lotes con el resultado 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 arriba 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 borre múltiples archivos o directorios cada vez que haga doble clic en él. Solo necesita usar el comando del para eliminar archivos o el comando deltree para eliminar directorios. Recuerde, solo está utilizando los mismos comandos que ejecutaría en una ventana del símbolo del sistema.

Fundamentalmente, ese es el punto de la mayoría de los archivos de proceso por lotes: solo ejecuta algunos comandos uno tras otro. Sin embargo, los archivos por lotes en realidad pueden ser mucho más complejos que esto. Por ejemplo, puede usar declaraciones "IF" junto con el comando "GOTO" para verificar el valor de algo y luego saltar a diferentes líneas dependiendo del resultado. Esto es más como escribir un pequeño programa real que un guión rápido y sucio. Esa es una razón por la cual los archivos. bat a veces se llaman "programas por lotes". Si desea hacer algo más complejo, encontrará muchas guías para hacer cosas específicas con la programación por lotes en línea. Pero ahora, conoces los conceptos básicos de cómo juntar uno simple.