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

Esistono diversi tipi di istruzioni IF che è possibile utilizzare in un file batch di Windows per risparmiare tempo e fatica. Controlla questi esempi per saperne di più.

Esistono diversi tipi di istruzioni IF che è possibile utilizzare in un file batch di Windows per risparmiare tempo e fatica.  Controlla questi esempi per saperne di più.
Annuncio pubblicitario

Se si lavora molto nei file batch di Windows, l' istruzione IF offre un modo molto efficace per aggiungere flessibilità agli script.

In questo articolo scoprirai i cinque principali tipi 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 lo scripting, iniziamo!

1. Confronta i valori

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

Ad esempio, supponiamo di voler scrivere uno script batch che controlli quotidianamente le dimensioni del disco rigido del tuo computer. Se è inferiore a 3 GB, si desidera ricevere un rapporto e-mail che dice "Spazio su disco rigido troppo basso".

Per creare uno script che confronti lo spazio libero del disco rigido attuale fino al 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 di Strumentazione gestione Windows di Windows che viene fornito con un assortimento di comandi che è possibile utilizzare per ottenere informazioni sul PC. Questo è il modo in cui il comando "wmic" in questo script chiama lo spazio "logicaldisk" e lo inserisce nella variabile di FreeSpace. Ora puoi semplicemente sostituire la riga "Echo Not enough free space" con un comando e-mail blat per inviarti un avviso.

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

Se non hai mai usato il blat in precedenza, abbiamo un articolo che ti mostra come configurare blat. Non hai familiarità con l'impostazione di lavori programmati? Ti abbiamo coperto con un articolo su come impostare le attività pianificate di Windows 4 Task noiosi che puoi automatizzare con l'Utilità di pianificazione di Windows 4 Task noiosi che puoi automatizzare con l'Utilità di pianificazione di Windows Il tuo tempo è troppo prezioso per essere sprecato con attività ripetitive . Lascia che ti mostriamo come automatizzare e pianificare le attività. Abbiamo anche alcuni grandi esempi. Leggi di più .

2. Confronto tra stringhe

Un altro valido confronto IF che puoi fare in un lavoro batch è il confronto delle stringhe .

Nell'esempio seguente vedremo come verificare la versione di Windows utilizzando un lavoro batch. Quindi è possibile confrontare questo con la versione di Windows prevista.

Alcuni usi di questo script potrebbero riguardare gli audit IT quando è necessario eseguire rapidamente uno script e assicurarsi che il sistema operativo corrente sia l'ultimo o se sia necessario 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.

File batch, Windows, programmazione

La possibilità di confrontare stringhe in batch apre un intero elenco di possibilità. Se esplori tutte le informazioni che puoi ottenere da un comando WMIC, vedrai solo quante statistiche sul tuo computer puoi monitorare. È possibile utilizzare lavori batch programmati per avvisare su questi.

3. Controllare se esiste un file

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

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

Quindi, il processo batch può copiare il file in un'altra posizione in cui può essere elaborato oppure 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 l'elaborazione dei dati in un file Excel 5 Utili script Windows VB per automatizzare il computer Utilizzare 5 utili script Windows VB per automatizzare il computer Utilizzo Dal monitoraggio del sito Web ai report di sistema, scopri come per automatizzare tutte le cose con questi incredibili script VB che puoi codificare in Windows in questo momento. Per saperne di più, alcune buone letture di background.)

Utilizzare un file batch per verificare se un file esiste in una directory è semplice e veloce. Ecco come appare questo script.

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

Il confronto IF EXISTS è utile per molte cose.

Ad esempio, se è in esecuzione un sistema o un'applicazione che crea nuovi log degli errori in una cartella specifica quando si verifica un problema, è possibile eseguire un processo batch ogni tanto per controllare se vengono creati nuovi log degli errori in modo da poter inviare un avviso.

4. Controllare se un comando non è riuscito

Un aspetto dello scripting di file batch che utilizzano troppi pochi addetti IT o programmatori è il controllo degli errori .

Esistono molti lavori batch in giro che svolgono attività IT critiche come il backup di file importanti o l'esecuzione di operazioni di copia di file. Quando questi processi batch falliscono, i sistemi falliscono e le persone lo notano.

È molto più intelligente ottenere un avviso quando il processo batch ha fallito un comando prima che la gente inizi a notarlo. In questo modo puoi risolvere il problema in modo proattivo.

È possibile farlo utilizzando la variabile% errorlevel% che la maggior parte delle applicazioni e dei comandi restituiscono dopo l'esecuzione.

Tutto quello che devi fare è seguire il comando dal comando IF% ERRORLEVEL%. Se l'applicazione o il comando restituiscono uno zero, tutto va bene. In caso contrario, è necessario inviare una e-mail.

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

Non devi prendere la via email. È sempre possibile scrivere un log degli errori che è possibile controllare ogni mattina o avviare una seconda applicazione o un comando che tenta di eseguire la copia utilizzando un comando alternativo. Qualunque sia l'azione che desideri intraprendere, IF% ERRORLEVEL% ti consente di farlo.

Se preferisci utilizzare un'istruzione IF per verificare i codici di errore specifici, Windows offre un elenco piuttosto esteso di codici di errore.

5. Controlla i parametri mancanti

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

Ad esempio, supponiamo di aver 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 semplicemente seguire il nome dello script con i parametri che definiscono il percorso del proprio file personale.

Ovviamente, non è possibile eseguire correttamente lo script senza il percorso specificato, quindi è possibile inserire un'istruzione IF all'inizio dello script per assicurarsi che entrambi i parametri siano stati immessi.

Ecco come sembra.

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

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

I lavori in batch possono essere potenti

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

Ovviamente, se vuoi davvero aumentare la tua notch, potresti prendere in considerazione VBA con la nostra guida sulla creazione della tua prima applicazione VBA, o magari persino imparare la programmazione Python.

Puoi usare spesso linguaggi di programmazione più avanzati come questi, o imparare a usare PowerShell 5 Motivi che dovresti usare PowerShell invece di script batch 5 Ragioni per cui dovresti usare PowerShell invece di script batch PowerShell è ciò che otterresti se attraversassi il prompt dei comandi con Batch Scripting, ha aggiunto alcune funzionalità extra e ha dato un calcio a tutte le tacche. Qui ci sono diversi motivi per cui dovresti provarlo. Ulteriori informazioni, per eseguire molte delle stesse attività per cui attualmente si utilizzano lavori batch.

In this article