Archivo Batch

De Seobility Wiki
Saltar a: navegación, buscar

¿Qué es el batch scripting y un archivo batch?

El batch scripting o programación batch es una herramienta para desarrolladoras/es de software de Windows que permite ejecutar instrucciones de línea de comandos como si fueran archivos. De esta forma, las y los desarrolladores pueden automatizar un montón de tareas en los servidores y en sus máquinas locales, lo cual es especialmente útil para tareas repetitivas como el establecimiento de nuevos proyectos o la ejecución automática de tareas rutinarias.

Sin embargo, los archivos batch sólo funcionan en máquinas con Windows, aunque Mac, Linux y otros equipos UNIX también cuentan con alternativas similares. Además, se trata de una tecnología relativamente antigua que fue desarrollada originalmente para DOS y OS/2, por lo que hoy en día apenas se utiliza entre los círculos de desarrolladoras/es.

¿Cómo funciona un archivo batch?

Un archivo de tipo batch es un documento de texto que contiene una serie de comandos que el sistema operativo se encarga de leer y ejecutar. Cualquier usuaria o usuario puede abrir el archivo batch tal y como lo haría con un archivo .exe, la diferencia es que en vez de abrir una aplicación, el ordenador lee y lanza la serie de comandos automáticamente.

Nota: los archivos batch se caracterizan por terminar con una extensión .bat, pero también se los puede encontrar como .cmd o .btm.

En realidad, los scripts batch son sumamente sencillos y su ejecución es secuencial además, como se mencionó antes, permiten a las y los desarrolladoras/es escribir y ejecutar una serie de comandos directamente desde Command Prompt del sistema.

Si bien es cierto que existen mejores alternativas como Windows PowerShell, los scripts batch pueden seguir ejecutándose en los sistemas como Windows 10 o superiores, por lo que seguirán siendo de utilidad para las desarrolladoras y desarrolladores que están habituadas/os a esta modalidad.

Ejemplos de comandos batch comunes

Existe un amplio rango de usos para los scripts batch: desde cambiar rápidamente los nombres de todos los archivos dentro de una carpeta, hasta monitorear a todas las desktops que estén conectadas a una red. Esto quiere decir que los archivos batch pueden hacer casi todo lo que el Command Prompt permite.

Sabiendo esto, los siguientes son algunos ejemplos de los usos y de cómo se ven los archivos batch.

Para comenzar, todos los archivos batch inician así: @echo off en la primera línea. Esto se debe a que, por defecto, Windows repetirá el nombre del comando que se está ejecutando y, como generalmente no es un comportamiento deseado, agregarlo en la línea 1 se encargará de desactivar la función permanentemente para el resto del archivo.

Creando un archivo batch

Captura de pantalla mostrando la creación de un archivo batch utilizando el bloc de notas de Windows.

Otros comandos como: if, else, y set (para identificar variables) también pueden utilizarse, así como aquellas variables especiales que incluyen el nombre de archivo, su ruta o la versión actual del sistema. Además, los scripts batch también permiten el uso de argumentos durante la ejecución a los que se puede acceder dentro del script utilizando la convención %1, %2, %3 para referirse a cada uno de los 3 argumentos que el archivo está ejecutando.

Por otra parte, el comando call resulta útil para los scripts más complejos. Y es que call puede ejecutar un subprograma dentro del script batch o también ejecutar un archivo batch externo.

Esto último, posibilita una mejor organización y desacoplamiento del código, permitiendo programar con buenas prácticas, incluso cuando se escriben archivos batch de Windows. Por otra parte, cuando los scripts se vuelven muy grandes son difíciles de manejar, por lo tanto, poder dividirlos en funciones o archivos más pequeños ayuda enormemente a su desarrollo y legibilidad.

Goto es otro comando común, aunque se utiliza con menos frecuencia. Se trata de un valor que permite saltar hacia lugares específicos dentro del texto de programación. Como tal, se puede utilizar para ejecutar funciones o comandos fuera de la ruta de ejecución lineal. Eso sí, a pesar de que puede ser de gran utilidad, dependiendo de cómo esté escrito, su uso ha disminuído y está considerado un “code smell” (también conocido como un código que huele o apesta) por los estándares de programación actuales.

En otro orden, encontramos los códigos de retorno o return codes, que son una parte importante de los archivos batch, pues indican si el comando ejecutado recientemente funciona o no. Es decir, por convención, cuando una función se ejecuta con éxito en una línea de comando debería retornar en cero, pero si no lo logra, debe regresar un valor diferente.

Afortunadamente, el archivo batch contiene variables del entorno que se generan automáticamente y es lo que se conoce como %ERRORLEVEL%, el cual que contiene el código de cualquiera de los comandos ejecutados más recientemente.

Visto de este modo y sabiendo que un código cero significa que un comando funcionó con éxito, la siguiente línea de comando representa una buena manera de verificar si existen errores:

IF %ERRORLEVEL% NEQ 0 (
Código de ejecución fallida aquí. 
)

Siguiendo el ejemplo: NEQ (del inglés Not Equal “To”) o “desigual” se representa como una función para analizar si un código retornó con un número diferente a cero, así una programadora o programador tiene la oportunidad de escribir algún comando adicional para solventar el error.

Desafortunadamente, los códigos de retorno son parte de una convención y no un estándar obligatorio, por lo que no todos los scripts batch los aplican.

Finalmente, el comando for es otra de las funcionalidades más eficaces y comunes, pues permite repetir diversos archivos y declaraciones para iterar y ejecutar el código en diversas variables y archivos a la vez.

Por ende, un bucle for contiene la condición y el código a ejecutar cada vez que una condición se cumple o no. Dicho así, un bucle for capaz de ejecutar todo tipo de archivos en el perfil de una usuaria o usuario, se ve así:

For %%i in (%USERPROFILE%\*) do
(ejecutar código aquí).

Esto último se puede emplear para renombrar muchos archivos a la vez, cambiar extensiones, modificar las rutas y mucho más, lo cual es de utilidad para la automatización de tareas tediosas.

En resumen: preguntas y respuestas de los archivos batch

¿Para qué se utilizan los archivos batch?

Los archivos batch se utilizan para ejecutar cadenas de comandos en secuencia y se pueden operar como archivos de extensión .exe.

¿Qué se puede lograr con el script de batch?

Los archivos batch se pueden utilizar para automatizar tareas, pero es particularmente útil para aquellas que son repetitivas. Asimismo, la mayoría de las operaciones que se pueden ejecutar a través del Command Prompt pueden ser automatizadas con la ayuda de estos scripts.

¿Se pueden utilizar en otros OS diferentes a Windows?

No, estos archivos son exclusivos para Windows. Los sistemas operativos como Mac, Linux y otros Unix de código abierto tienen diferentes alternativas que son similares.

¿Los scripts de batch siguen siendo relevantes?

Así es. A pesar de ser una práctica antigua, aún hay casos en los que se utilizan. Sin embargo, hay alternativas más actualizadas como el uso del Powershell, pero los textos batch se siguen utilizando en Windows 10.

¿Cuáles son los comandos más frecuentes?

  • if, else, set
  • call
  • goto
  • for

Ampliar conocimientos

Sobre las autoras y autores:
Seobility S
El equipo de Seobility Wiki está formado por expertas y expertos SEO, profesionales del marketing digital y especialistas en negocios con experiencia en SEO, marketing online y desarrollo web. Todos nuestros artículos pasan por un proceso editorial de varios niveles para proporcionarte la mejor calidad posible e información relevante y de utilidad. Conoce a la gente que hay detrás de la Wiki de Seobility.

Contenidos relacionados