5 istruzioni IF da utilizzare per script batch di Windows più intelligenti

5 istruzioni IF da utilizzare per script batch di Windows più intelligenti

Se lavori molto sui file batch di Windows, il IF dichiarazione offre un modo molto potente per aggiungere flessibilità ai tuoi script.





In questo articolo imparerai a conoscere i cinque tipi principali di istruzioni IF che puoi utilizzare in un file batch di Windows, come appare la sintassi corretta e un esempio realistico per ciascuno.





Se sei pronto per iniziare a scrivere script, iniziamo!





1. Confronta i valori

Una delle cose di base che di solito devi fare in uno script batch è confronta due valori e seguire una linea di condotta diversa a seconda del confronto.

Ad esempio, supponiamo che tu voglia scrivere uno script batch che controlli quotidianamente le dimensioni del disco rigido del tuo computer. Se è inferiore a 3 GB, vuoi ricevere un rapporto via email che dice 'Spazio su disco rigido troppo basso'.



Per creare uno script che confronti lo spazio disponibile sul disco rigido corrente con il tuo limite, devi creare il seguente script batch e salvarlo come file .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 è il componente Strumentazione gestione Windows di Windows che viene fornito con un assortimento di comandi che è possibile utilizzare per estrarre le informazioni del PC. Ecco come il comando 'wmic' in questo script chiama lo spazio 'logicaldisk' e lo inserisce nella variabile FreeSpace. Ora puoi semplicemente sostituire la riga 'Echo Spazio libero insufficiente' con un comando e-mail blat per inviarti un avviso.





Infine, imposta questo script come un processo batch pianificato da Windows che viene eseguito quotidianamente.

Se non hai mai usato blat prima, abbiamo un articolo che ti mostra come impostare blat . Non hai familiarità con l'impostazione di lavori pianificati? Ti abbiamo coperto con un articolo su come configurare le attività pianificate di Windows.





2. Confronti di stringhe

Un altro prezioso confronto IF che puoi fare in un lavoro batch è confrontare le stringhe .

Nell'esempio seguente vedrai come controllare la tua versione di Windows usando un lavoro batch. Quindi puoi confrontarlo con la tua versione di Windows prevista.

Alcuni usi di questo script sarebbero per gli audit IT quando è necessario eseguire rapidamente uno script e assicurarsi che il sistema operativo corrente sia l'ultimo o se ha bisogno di un aggiornamento.

Ecco come appare questo script.

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

Ecco come appare l'output di questo script.

La possibilità di confrontare le stringhe in batch apre un intero elenco di possibilità. Se esplori tutti i informazioni che puoi ottenere da un comando WMIC vedrai quante statistiche sul tuo computer puoi monitorare. È possibile utilizzare processi batch pianificati per avvisare di questi.

3. Controlla se esiste un file

Un'altra situazione utile in cui un'istruzione IF in un file batch è quella di verificare l'esistenza di un file di dati .

Molte volte il lavoro batch è solo uno strumento di monitoraggio che potrebbe essere pianificato per verificare la presenza di nuovi file di dati in entrata in una directory specifica.

Quindi, il processo batch può copiare quel file in un'altra posizione in cui può essere elaborato o avviare uno script di Windows che elabora il file in un output di Excel.

(Abbiamo scritto in passato su come utilizzare gli script di Windows per elaborare i dati in un file Excel ; qualche buona lettura di base.)

L'utilizzo di un file batch per verificare se un file esiste in una directory è semplice e veloce. Ecco come appare lo script.

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

Il confronto SE ESISTE è utile per molte cose.

Ad esempio, se hai un sistema o un'applicazione in esecuzione che crea nuovi registri di errore in una cartella specifica quando si verifica un problema, puoi eseguire un processo batch ogni tanto per monitorare se vengono creati nuovi registri di errore in modo da poter inviare un avviso.

4. Controlla se un comando fallisce

Un aspetto dello scripting di file batch che troppo poche persone IT o programmatori usano è controllo degli errori .

Ci sono molti lavori batch in circolazione che eseguono attività IT critiche come il backup di file importanti o l'esecuzione di operazioni di copia dei file. Quando questi processi batch falliscono, i sistemi falliscono e le persone se ne accorgono.

È molto più intelligente ricevere un avviso quando il tuo lavoro batch ha fallito un comando prima le persone iniziano a notare. In questo modo puoi risolvere il problema in modo proattivo.

Puoi farlo utilizzando la variabile %errorlevel% che la maggior parte delle applicazioni e dei comandi restituisce dopo l'esecuzione.

Tutto quello che devi fare è seguire il tuo comando con il comando IF %ERRORLEVEL%. Se l'applicazione o il comando ha restituito uno zero, va tutto bene. In caso contrario, devi inviarti un'e-mail.

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

Non devi seguire il percorso della posta elettronica. Puoi sempre scrivere un registro degli errori che potresti controllare ogni mattina o avviare una seconda applicazione o comando che tenti di eseguire la copia utilizzando un comando alternativo. Qualunque azione tu voglia intraprendere, IF %ERRORLEVEL% ti consente di farlo.

Se preferisci utilizzare un'istruzione IF per verificare codici di errore specifici, Windows offre un bel ampio elenco di codici di errore .

5. Verificare la presenza di parametri mancanti

L'ultima istruzione IF utile non è un comando specifico, ma invece per verificare che lo script ricevuto i parametri di input appropriati .

Ad esempio, supponiamo che tu abbia scritto uno script che esegue un comando xcopy da una cartella di input, in una cartella di rete comune utilizzata da un team. L'utente deve solo seguire il nome dello script con i parametri che definiscono il percorso del file personale.

Ovviamente, non puoi eseguire correttamente il tuo script senza il percorso specificato, quindi puoi inserire un'istruzione IF all'inizio dello script per assicurarti che entrambi i parametri siano stati inseriti.

Ecco come sembra.

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

Se non hai mai utilizzato parametri con script batch prima, il simbolo di percentuale seguito da un numero rappresenta la variabile del parametro. %1 è il primo parametro, %2 è il secondo e così via.

I lavori batch possono essere potenti

Molte persone iniziano a utilizzare processi batch per attività semplici che devono essere eseguite in sequenza. Con le istruzioni IF è possibile aggiungere molta più intelligenza ai tuoi script.

Ovviamente se vuoi davvero fare un salto di qualità, potresti prendere in considerazione l'idea di dare un'occhiata a VBA con la nostra guida su creare la tua prima applicazione VBA , o forse anche imparare la programmazione Python .

È spesso possibile utilizzare linguaggi di programmazione più avanzati come questi o imparare a usare PowerShell per eseguire molte delle stesse attività per le quali attualmente si utilizzano i processi batch.

Condividere Condividere Tweet E-mail Elimina questi file e cartelle di Windows per liberare spazio su disco

Hai bisogno di liberare spazio su disco sul tuo computer Windows? Ecco i file e le cartelle di Windows che possono essere eliminati in sicurezza per liberare spazio su disco.

Leggi Avanti
Argomenti correlati
  • finestre
  • Programmazione
  • finestre
Circa l'autore Ryan Dube(942 articoli pubblicati)

Ryan ha una laurea in ingegneria elettrica. Ha lavorato 13 anni nell'ingegneria dell'automazione, 5 anni nell'IT e ora è un ingegnere delle app. Ex caporedattore di MakeUseOf, ha parlato a conferenze nazionali sulla visualizzazione dei dati ed è apparso su TV e radio nazionali.

come ridurre l'utilizzo della ram su Windows 10
Altro da Ryan Dube

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti