5 declaraciones IF para usar en secuencias de proceso por lotes de Windows más inteligentes

Hay varios tipos de declaraciones IF que puede usar en un archivo por lotes de Windows para ahorrar tiempo y esfuerzo. Verifique estos ejemplos para obtener más información.

Hay varios tipos de declaraciones IF que puede usar en un archivo por lotes de Windows para ahorrar tiempo y esfuerzo.  Verifique estos ejemplos para obtener más información.
Anuncio

Si trabajas mucho en los archivos por lotes de Windows, la declaración IF ofrece una forma muy poderosa de agregar flexibilidad a tus scripts.

En este artículo, aprenderá sobre los cinco tipos principales de declaraciones IF que puede usar en un archivo por lotes de Windows, cómo se ve la sintaxis correcta y un ejemplo realista para cada una.

Si está listo para comenzar a crear scripts, ¡comencemos!

1. Comparar valores

Una de las cosas básicas que normalmente necesitará hacer en un script por lotes es comparar dos valores y seguir un curso de acción diferente según la comparación.

Por ejemplo, supongamos que quiere escribir un script por lotes que verifique diariamente el tamaño del disco duro de su computadora. Si está por debajo de 3 GB, desea obtener un informe por correo electrónico que diga "Espacio en disco duro demasiado bajo".

Para crear un script que compare el espacio libre actual del disco duro con su límite, debe crear el siguiente script por lotes y guardarlo como un archivo .bat.

@echo off set DriveLimit=300000000 for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x Echo FreeSpace="%FreeSpace%" Echo Limit="%DriveLimit%" If %FreeSpace% GTR %DriveLimit% ( Echo There is enough free space. ) else ( Echo Not enough free space. ) 

WMIC es el componente de Windows Management Instrumentation de Windows que viene con una variedad de comandos que puede usar para extraer información de la PC. Así es como el comando "wmic" en este script llama al espacio "logicaldisk" y lo coloca en la variable FreeSpace. Ahora puede reemplazar la línea "Echo No enough free space" con un comando blate email para enviarle una alerta.

Finalmente, establezca este script como un trabajo por lotes programado de Windows que se ejecuta diariamente.

Si nunca antes has usado blat, tenemos un artículo que te muestra cómo configurar blat. ¿No está familiarizado con la configuración de trabajos programados? Le cubrimos con un artículo sobre cómo configurar las tareas programadas de Windows 4 Tareas de tachar Puede automatizar con el Tareador 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 IF que puede hacer en un trabajo por lotes es comparar cadenas .

En el siguiente ejemplo, verá cómo verificar su versión de Windows utilizando un trabajo por lotes. Entonces puede comparar esto con su versión esperada de Windows.

Algunos usos de esta secuencia de comandos serían las auditorías de TI cuando necesita ejecutar rápidamente una secuencia de comandos y asegurarse de que el sistema operativo actual sea el último o de que necesite una actualización.

Así es como se ve esta secuencia de comandos.

 @echo off for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j if "%version%" == "6.0" echo Windows Vista. if "%version%" == "6.1" echo Windows 7 if "%version%" == "6.2" echo Windows 8 if "%version%" == "6.3" echo Windows 8.1 if "%version%" == "10.0" echo Windows 10. 

Aquí se muestra el resultado de este script.

Batch File, Windows, Programación

La posibilidad de comparar cadenas en lotes abre una lista completa de posibilidades. Si exploras toda la información que puedes obtener de un comando de WMIC, verás cuántas estadísticas sobre tu computadora puedes controlar. Puede usar trabajos por lotes programados para alertar sobre esto.

3. Compruebe si existe un archivo

Otra situación útil en la que una declaración IF en un archivo por lotes es verificar la existencia de un archivo de datos .

Muchas veces, el trabajo por lotes es solo una herramienta de monitoreo que podría programarse para buscar nuevos archivos de datos entrantes en un directorio específico.

Luego, el trabajo por lotes puede copiar ese archivo a otra ubicación donde se puede procesar o iniciar una secuencia de comandos de Windows que procesa el archivo en una salida de Excel.

(Hemos escrito en el pasado sobre cómo usar las secuencias de comandos de Windows para procesar datos en un archivo de Excel 5 VB útiles Scripts de Windows para automatizar su computadora Uso 5 VB útiles Scripts de Windows para automatizar su computadora Uso Desde la supervisión del sitio web a los informes del sistema, sepa cómo para automatizar todas las cosas con estos sorprendentes scripts de VB, puedes codificar en Windows ahora mismo. Leer más; algunos buenos antecedentes.)

Usar un archivo por lotes para verificar si un archivo existe en un directorio es rápido y fácil. Así es como se ve esa secuencia de comandos.

 @echo off if exist c:\temp\datafile.txt ( %WINDIR%\SysWOW64\cmd.exe cscript LoadToExcel.vbs ) else ( rem file doesn't exist ) 

La comparación 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 de vez en cuando para monitorear si se crean nuevos registros de errores para que pueda enviar una alerta.

4. Marque si un comando falló

Un aspecto de la creación de scripts de archivos por lotes que muy pocos informáticos o personas de TI utilizan es para detectar errores .

Hay muchos 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 lo notan.

Es mucho más inteligente recibir una alerta cuando su trabajo por lotes ha fallado un comando antes de que las personas comiencen a notarlo. De esta forma, puede solucionar el problema de forma proactiva.

Puede hacerlo utilizando la variable% errorlevel% que la mayoría de las aplicaciones y comandos devuelven después de que se ejecutan.

Todo lo que tienes que hacer es seguir tu comando con el comando IF% ERRORLEVEL%. Si la aplicación o el comando devolvió un cero, todo está bien. Si no es así, debe enviarse un correo electrónico.

 @echo off xcopy C:\somefolder E:\backupfolder IF %ERRORLEVEL% NEQ 0 

No tiene que tomar la ruta del correo electrónico. Siempre puede escribir un registro de errores que pueda verificar todas las mañanas o iniciar una segunda aplicación o comando que intente hacer la copia utilizando un comando alternativo. Sea cual 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. Verificar si faltan parámetros

La última instrucción IF útil no es un comando específico, sino que 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 necesita seguir el nombre de su secuencia de comandos con los parámetros que definen su ruta de archivo personal.

Obviamente, no puede ejecutar correctamente su script sin la ruta especificada, por lo que puede colocar una instrucción IF al comienzo de su script 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 You forgot to specify your path. :eof 

Si nunca antes ha utilizado parámetros con scripts por lotes, el símbolo de porcentaje seguido de un número representa la variable de 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 tus scripts.

Por supuesto, si realmente quieres subir un escalón, podrías considerar echarle un vistazo a VBA con nuestra guía sobre cómo crear tu primera aplicación VBA, o incluso aprender programación 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 utilizar PowerShell en lugar de Batch Scripting 5 Razones por las que debería utilizar PowerShell en lugar de Batch Scripting PowerShell es lo que obtendría si cruzara el símbolo del sistema con Lote de secuencias de comandos, lanzó algunas características adicionales, y pateó todo varias muescas. Aquí hay varias razones por las que deberías intentarlo. Lea más, para realizar muchas de las mismas tareas para las que actualmente utiliza trabajos por lotes.

In this article