5 Instruccions IF que s'han d'utilitzar per a scripts de lots de Windows més intel·ligents

5 Instruccions IF que s'han d'utilitzar per a scripts de lots de Windows més intel·ligents

Si feu molta feina als fitxers per lots de Windows, el fitxer Declaració IF ofereix una manera molt potent d’afegir flexibilitat als vostres scripts.





En aquest article coneixereu els cinc tipus principals d’instruccions IF que podeu utilitzar en un fitxer per lots de Windows, l’aspecte de la sintaxi correcta i un exemple realista per a cadascun.





Si esteu a punt per començar a crear scripts, comencem!





1. Compareu els valors

Una de les coses bàsiques que normalment haureu de fer en un script per lots és compareu dos valors i seguiu un curs d’acció diferent segons la comparació.

Per exemple, suposem que volíeu escriure un script per lots que comprovi la mida del disc dur de l'ordinador diàriament. Si és inferior a 3 GB, voleu rebre un informe per correu electrònic que digui 'L'espai del disc dur és massa baix'.



Per crear un script que compari l'espai lliure actual del disc dur amb el vostre límit, heu de crear el següent script per lots i desar-lo com a fitxer .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 és el component d’instrumentació de gestió de Windows de Windows que inclou un assortiment d’ordres que podeu utilitzar per obtenir informació de l’ordinador. Així és com l'ordre 'wmic' d'aquest script crida l'espai 'logicdisk' i el situa a la variable FreeSpace. Ara només podeu substituir la línia 'Echo No hi ha prou espai lliure' per una ordre de correu electrònic descarada per enviar-vos una alerta.





Finalment, configureu aquest script com un treball per lots programat de Windows que s'executi diàriament.

Si mai no heu utilitzat blat, tenim un article que us mostra com configurar blat. No esteu familiaritzat amb la configuració de feines programades? Us proporcionem un article sobre com configurar les tasques programades de Windows.





2. Comparacions de cadenes

Una altra valuosa comparació IF que podeu fer en un treball per lots és comparant cadenes .

A l'exemple següent veureu com comprovar la vostra versió de Windows mitjançant un treball per lots. A continuació, podeu comparar-ho amb la vostra versió de Windows esperada.

Alguns usos d’aquest script serien per a auditories de TI quan calgui executar ràpidament un script i assegurar-se que el sistema operatiu actual és l’últim o si necessita una actualització.

Aquí teniu l’aspecte d’aquest guió.

@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.

A continuació s’explica la sortida d’aquest script.

La possibilitat de comparar cadenes per lots obre tota una llista de possibilitats. Si exploreu tots els fitxers informació que podeu obtenir d’una ordre WMIC veureu quantes estadístiques sobre l’ordinador podeu controlar. Podeu utilitzar feines per lots programades per alertar-ne.

3. Comproveu si existeix un fitxer

Una altra situació útil on es troba una sentència IF en un fitxer per lots comproveu l'existència d'un fitxer de dades .

Moltes vegades el treball per lots és només una eina de control que es pot programar per comprovar si hi ha fitxers de dades entrants nous en un directori específic.

A continuació, el treball per lots pot copiar aquest fitxer a una altra ubicació on es pot processar o iniciar alguns scripts de Windows que processen el fitxer en una sortida d'Excel.

(Hem escrit en el passat sobre com fer-ho utilitzeu scripts de Windows per processar dades a un fitxer Excel ; una bona lectura de fons.)

Fer servir un fitxer per lots per comprovar si existeix un fitxer en un directori és fàcil i ràpid. Aquí teniu l’aspecte d’aquest guió.

@echo off
if exist c: empdatafile.txt (
%WINDIR%SysWOW64cmd.exe
cscript LoadToExcel.vbs
) else (
rem file doesn't exist
)

La comparació IF EXISTS és útil per a moltes coses.

Per exemple, si teniu un sistema o una aplicació en execució que crea registres d'errors nous en una carpeta específica quan hi ha un problema, podeu executar un treball per lots cada cert temps per controlar si es creen registres d'errors nous per poder enviar una alerta.

4. Comproveu si ha fallat una ordre

Un aspecte de la creació de scripts de fitxers per lots que massa pocs usuaris o programadors de TI utilitzen és comprovant si hi ha errors .

Hi ha molts treballs per lots que floten per aquí i que realitzen tasques de TI crítiques, com fer còpies de seguretat de fitxers importants o executar operacions de còpia de fitxers. Quan aquests treballs per lots fallen, els sistemes fallen i la gent se n’adona.

És molt més intel·ligent rebre una alerta quan el vostre treball per lots ha fallat en una ordre abans la gent comença a notar-ho. D'aquesta manera, podeu solucionar el problema de manera proactiva.

Podeu fer-ho mitjançant la variable% errorlevel% que la majoria d'aplicacions i ordres retornen després d'executar-les.

Tot el que heu de fer és seguir la vostra ordre mitjançant l'ordre IF% ERRORLEVEL%. Si l'aplicació o l'ordre van retornar un zero, tot està bé. Si no, haureu d’enviar-vos un correu electrònic.

@echo off
xcopy C:
omefolder E:ackupfolder
IF %ERRORLEVEL% NEQ 0

No cal que feu la ruta de correu electrònic. Sempre podeu escriure un registre d'errors que podeu comprovar cada matí o iniciar una segona aplicació o ordre que intenti fer la còpia mitjançant una ordre alternativa. Sigui quina sigui l’acció que vulgueu fer, SI% ERRORLEVEL% us permet fer-ho.

Si preferiu utilitzar una declaració IF per comprovar codis d'error específics, Windows us ofereix un bonic extensa llista de codis d'error .

5. Comproveu si falten paràmetres

L'última instrucció IF útil no és una ordre específica, sinó per comprovar que l'script ha rebut els paràmetres d'entrada adequats .

Per exemple, suposem que heu escrit un script que realitza una ordre xcopy des d'una carpeta d'entrada a una carpeta de xarxa comuna que utilitza un equip. L'usuari només ha de seguir el nom del seu script amb els paràmetres que defineixen la ruta del fitxer personal.

Obbviament, no podeu executar correctament el vostre script sense la ruta especificada, de manera que podeu posar una sentència IF al principi del script per assegurar-vos que s’han introduït els dos paràmetres.

Així és com es veu això.

@echo off
IF [%1]==[] (
GOTO sub_message
) ELSE (
xcopy %1 E:ackupfolder
)
GOTO eof
:sub_message
echo You forgot to specify your path.
:eof

Si mai no heu utilitzat paràmetres amb scripts per lots, el símbol de percentatge seguit d'un número representa la variable del paràmetre. % 1 és el primer paràmetre,% 2 és el segon, etc.

Les feines per lots poden ser potents

Molta gent comença a utilitzar feines per lots per a tasques senzilles que cal executar de forma seqüencial. Amb les declaracions IF és possible afegir molta més intel·ligència als vostres scripts.

Per descomptat, si realment voleu millorar-lo, us recomanem que consulteu VBA amb la nostra guia creant la vostra primera aplicació VBA , o potser fins i tot aprendre la programació de Python.

Sovint podeu utilitzar llenguatges de programació més avançats com aquests o aprendre a utilitzar PowerShell per dur a terme moltes de les mateixes tasques per a les quals utilitzeu actualment treballs per lots.

Compartir Compartir Tweet Correu electrònic Suprimiu aquests fitxers i carpetes de Windows per alliberar espai al disc

Necessiteu buidar l’espai del disc a l’ordinador Windows? A continuació, es mostren els fitxers i carpetes de Windows que es poden esborrar amb seguretat per alliberar espai al disc.

Llegiu a continuació
Temes relacionats
  • Windows
  • Programació
  • Windows
Sobre l'autor Ryan Dube(942 articles publicats)

Ryan és llicenciat en Enginyeria Elèctrica. Ha treballat 13 anys en enginyeria d'automatització, 5 anys en informàtica i ara és enginyer d'aplicacions. Antic editor gerent de MakeUseOf, ha parlat a conferències nacionals sobre visualització de dades i ha estat presentat a la ràdio i la televisió nacionals.

forçar tancar un programa Windows 10
Més de Ryan Dube

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us