5 declaraciones de IF para usar con scripts de lotes de Windows más inteligentes
Si trabajas mucho en archivos por lotes de Windows, Declaración IF ofrece una manera muy poderosa de agregar flexibilidad a sus scripts.
En este artículo, aprenderá acerca de los cinco tipos principales de declaraciones de IF que puede usar en un archivo por lotes de Windows, cómo se ve la sintaxis correcta y un ejemplo realista para cada uno..
Si está listo para comenzar a crear scripts, comencemos!
1. Comparar valores
Una de las cosas básicas que normalmente deberá hacer en un script por lotes es compara dos valores y seguir un curso de acción diferente dependiendo de la comparación.
Por ejemplo, supongamos que desea escribir un script por lotes que verifique el tamaño del disco duro de su computadora diariamente. Si está por debajo de 3 GB, desea recibir un informe por correo electrónico que diga, “Espacio en el disco duro demasiado bajo.”
Para crear un script que compare el espacio de disco duro libre actual con su límite, debe crear el siguiente script por lotes y guardarlo como un archivo .bat.
@echo off set DriveLimit = 300000000 para / f "usebackq delims == tokens = 2" %% x in ('wmic logicaldisk donde "DeviceID =' C: '" obtiene FreeSpace / format: value') establece FreeSpace = %% x Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Si% FreeSpace% GTR% DriveLimit% (Echo hay suficiente espacio libre.) else (Echo No hay suficiente espacio libre).
WMIC es el componente de Instrumental de administración de Windows de Windows que viene con una variedad de comandos que puede usar para obtener información de la PC. Así es como el “wmic” comando en este script llama a la “disco lógico” espacio y lo coloca en la variable FreeSpace. Ahora solo puedes reemplazar la línea “Echo No hay suficiente espacio libre” con un comando de correo electrónico blat para enviarle una alerta.
Finalmente, configure este script como un trabajo por lotes programado de Windows que se ejecuta diariamente.
Si nunca ha usado blat antes, tenemos un artículo que le muestra cómo configurar blat. ¿No está familiarizado con la configuración de trabajos programados? Lo cubrimos con un artículo sobre cómo configurar las tareas programadas de Windows 4 Tareas aburridas que puede automatizar con el Programador de tareas de Windows 4 Tareas aburridas que puede automatizar con el Programador de tareas de Windows Su tiempo es demasiado valioso como para desperdiciarlo con tareas repetitivas . Permítanos mostrarle cómo automatizar y programar tareas. También tenemos algunos buenos ejemplos. Lee mas .
2. Comparaciones de cadenas
Otra valiosa comparación de IF que puedes hacer en un trabajo por lotes es comparando cuerdas.
En el siguiente ejemplo, verá cómo verificar su versión de Windows usando un trabajo por lotes. Entonces puedes comparar esto con tu versión de Windows esperada.
Algunos usos de este script serían para auditorías de TI cuando necesite ejecutar rápidamente un script y asegurarse de que el sistema operativo actual sea el último, o si necesita una actualización..
Así es como se ve este guión.
@echo off para / f "tokens = 4-5 delims =." %% i in ('ver') establece VERSION = %% i. %% j si "% version%" == "6.0" hace eco en Windows Vista . si "% version%" == "6.1" hace eco en Windows 7 si "% version%" == "6.2" hace eco en Windows 8 si "% version%" == "6.3" hace eco en Windows 8.1 si "% version%" == "10.0" se hace eco de Windows 10.
Así es como se ve la salida de este script.
La posibilidad de comparar cadenas en lote abre una lista completa de posibilidades. Si explora toda la información que puede obtener de un comando de WMIC, verá cuántas estadísticas sobre su computadora puede monitorear. Puede utilizar los trabajos por lotes programados para alertar sobre estos.
3. Comprobar si existe un archivo
Otra situación útil en la que una declaración IF en un archivo por lotes es comprobar la existencia de un archivo de datos.
Muchas veces, el trabajo por lotes es solo una herramienta de monitoreo que puede programarse para buscar nuevos archivos de datos entrantes en un directorio específico.
Luego, el trabajo por lotes puede copiar ese archivo en otra ubicación donde se puede procesar o iniciar un script de Windows que procesa el archivo en una salida de Excel.
(En el pasado escribimos sobre cómo usar los scripts de Windows para procesar datos en un archivo Excel. 5 Scripts útiles de VB Windows para automatizar su computadora. Use 5 scripts útiles de Windows VB para automatizar su computadora. Desde el monitoreo del sitio web hasta los informes del sistema, aprenda cómo para automatizar todas las cosas con estos increíbles scripts de VB que puede codificar en Windows en este momento. Lea más;
El uso de un archivo por lotes para verificar si un archivo existe en un directorio es rápido y fácil. Así es como se ve ese guión.
@echo off si existe c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs) else (el archivo rem no existe)
La comparación de IF EXISTS es útil para muchas cosas..
Por ejemplo, si tiene un sistema o una aplicación en ejecución que crea nuevos registros de errores en una carpeta específica cuando hay un problema, puede ejecutar un trabajo por lotes cada cierto tiempo para controlar si se crean nuevos registros de errores para que pueda enviar una alerta..
4. Comprobar si un comando falló
Un aspecto de las secuencias de comandos de archivos por lotes que muy pocas personas de TI o programadores utilizan es comprobando errores.
Hay una gran cantidad de trabajos por lotes flotando por ahí que están realizando tareas críticas de TI como hacer copias de seguridad de archivos importantes o ejecutar operaciones de copia de archivos. Cuando estos trabajos por lotes fallan, los sistemas fallan y las personas se dan cuenta..
Es mucho más inteligente recibir una alerta cuando su trabajo por lotes ha fallado un comando antes de La gente empieza a notar. De esta manera usted puede solucionar el problema de manera proactiva.
Puede hacer esto utilizando la variable% errorlevel% que la mayoría de las aplicaciones y comandos devuelven después de ejecutarse.
Todo lo que tiene que hacer es seguir su comando con el comando IF% ERRORLEVEL%. Si la aplicación o el comando devolvió un cero, todo está bien. Si no es así, entonces necesita enviarse un correo electrónico.
@echo off xcopy C: \ somefolder E: \ backupfolder IF% ERRORLEVEL% NEQ 0
No tienes que tomar la ruta de correo electrónico. Siempre puede escribir un registro de errores que pueda revisar cada mañana, o iniciar una segunda aplicación o comando que intente hacer la copia utilizando un comando alternativo. Cualquiera que sea la acción que desee realizar, IF% ERRORLEVEL% le permite hacerlo.
Si prefiere usar una declaración IF para verificar códigos de error específicos, Windows ofrece una lista bastante extensa de códigos de error.
5. Compruebe los parámetros que faltan
La última instrucción IF útil no es un comando específico, sino que se comprueba que el script recibió los parámetros de entrada apropiados.
Por ejemplo, supongamos que ha escrito un script que ejecuta un comando xcopy desde una carpeta de entrada, a una carpeta de red común utilizada por un equipo. El usuario solo tiene que seguir el nombre de su script con los parámetros que definen su ruta de archivo personal.
Obviamente, no puede ejecutar su secuencia de comandos correctamente sin la ruta especificada, por lo que puede poner una instrucción IF al comienzo de la secuencia de comandos para asegurarse de que se ingresaron ambos parámetros.
Así es como se ve.
@echo off IF [% 1] == [] (GOTO sub_message) ELSE (xcopy% 1 E: \ backupfolder) GOTO eof: sub_message echo Se olvidó de especificar su ruta. : eof
Si nunca ha usado parámetros con scripts por lotes antes, el símbolo de porcentaje seguido de un número representa la variable del parámetro. % 1 es el primer parámetro,% 2 es el segundo, y así sucesivamente.
Los trabajos por lotes pueden ser poderosos
Muchas personas comienzan a usar trabajos por lotes para tareas simples que deben ejecutarse en secuencia. Con las declaraciones IF es posible agregar mucha más inteligencia a sus scripts.
Por supuesto, si realmente quieres mejorarlo un poco, puedes considerar echar un vistazo a VBA con nuestra guía para crear tu primera aplicación de VBA, o incluso aprender a programar en Python..
A menudo puede usar lenguajes de programación más avanzados como estos, o aprender a usar PowerShell 5 razones por las que debería usar PowerShell en lugar de scripts por lotes 5 razones por las que debería usar PowerShell en lugar de scripts por lotes PowerShell es lo que obtendría si cruzara la línea de comandos Realice lotes de secuencias de comandos, incorporó algunas funciones adicionales y lo amplió varias muescas. Aquí hay varias razones por las que debe intentarlo. Leer más, para llevar a cabo muchas de las mismas tareas para las que actualmente utiliza trabajos por lotes.
Explorar más sobre: Windows.