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 secuencia de comandos por lotes) es una lista de varios comandos que se ejecutan cuando se 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 potentes, pero los archivos por lotes pueden ser bastante útiles si necesita ejecutar comandos básicos de Windows.
Fundamentos de archivo 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 el Bloc de notas ++, pero no use un procesador de textos como Microsoft Word.
Vamos a crear un archivo por lotes simple. Primero, abre el Bloc de notas. Escriba las siguientes líneas en él:
ECHO OFF ECHO Hola Mundo PAUSA
A continuación, guarde el archivo haciendo clic en Archivo> Guardar. Asígnele 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. Haga 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 agregaste PAUSA
En el archivo, el archivo por lotes simplemente ejecutaría sus comandos y luego se cerraría automáticamente. En este caso, se imprimiría "Hello World" en la ventana y luego se cerraría inmediatamente la ventana del símbolo del sistema. Cuando quiera ejecutar comandos rápidamente sin ver el resultado, puede omitir esto. Si está ejecutando varios comandos, puede colocar el PAUSA
comando entre ellos.
Escribir un archivo de lote más complejo
Es fundamentalmente simple crear un archivo por lotes. Lo único que necesitas cambiar es lo que escribes en el Bloc de notas. Para ejecutar varios comandos, escribe cada uno en su propia línea y el archivo por lotes se ejecutará cada uno en orden.
Por ejemplo, digamos que queremos escribir un archivo por lotes que ejecute varios comandos de diagnóstico de red. Podríamos querer correr ipconfig / all
para ver información de la red, ping google.com
para ver si los servidores de Google están respondiendo, 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 por lotes, uno después de otro, así:
ipconfig / all ping google.com tracert google.com PAUSE
Cuando ejecutamos este archivo, solo veríamos 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 comienza con una ::
Es una línea de comentario y no será ejecutada. 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 futuro yo, que podría olvidar por qué pone 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. Cuando haga esto, los comandos en sí no se imprimirán en el símbolo del sistema, pero los resultados lo serán. Por ejemplo, verá los detalles de la conexión de red pero no la línea "ipconfig / all". La mayoría de las personas no les importa ver los comandos, por lo que esto puede limpiar la salida.
Así que aquí está el aspecto que podría tener:
:: Este archivo por lotes comprueba si hay problemas de conexión de red. ECHO OFF :: Ver detalles de la conexión de red ipconfig / all :: Comprobar si se puede acceder a Google.com ping google.com :: Ejecutar un traceroute para verificar la ruta a Google.com tracert google.com PAUSE
Hay otras direcciones que podría 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 descargue la salida en un archivo de texto que pueda ver más adelante. Para ello, utilizarías la >>
operador después de cada comando para anexar su salida al archivo de texto. De todos modos, como vamos a leer la salida del archivo de texto, podemos omitir la PAUSA
mando.
:: Este archivo por lotes comprueba si hay problemas de conexión de red :: y guarda la salida en un archivo .txt. ECHO OFF :: 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 >> 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 la salida de los comandos. La ventana del símbolo del sistema se cerrará automáticamente una vez que el archivo por lotes haya terminado de ejecutarse.
El ejemplo que utilizamos 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 necesitas usar el del
comando para eliminar archivos o la deltree
comando para eliminar directorios. Recuerda, solo estás usando los mismos comandos que ejecutarías en una ventana del símbolo del sistema.
Fundamentalmente, ese es el punto de la mayoría de los archivos por lotes: solo ejecutar algunos comandos uno tras otro. Sin embargo, los archivos por lotes pueden ser mucho más complejos que esto. Por ejemplo, puede usar las declaraciones "IF" junto con el comando "GOTO" para verificar el valor de algo y luego saltar a diferentes líneas según el resultado. Esto es más como escribir un pequeño programa real que un script rápido y sucio. Esa es una de las razones por las que los archivos .bat a veces se denominan "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, ya sabes lo básico de cómo lanzar uno simple juntos..