Annuncio pubblicitario

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

In questo articolo imparerai 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 gli script, iniziamo!

1. Confronta i valori

Una delle cose di base che di solito devi fare in uno script batch è confrontare due valori e seguire un diverso corso di azione 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, desideri ricevere un rapporto email che dice "Spazio su disco rigido troppo basso".

Per creare uno script che confronta l'attuale spazio libero sul disco rigido con il limite, devi creare il seguente script batch e salvarlo come file .bat.

@echo off. impostare DriveLimit = 300000000. per / f "usebackq delims == tokens = 2" %% x in (`disco logico wmic dove" DeviceID = 'C:' "ottiene FreeSpace / format: value`) impostare FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Se% FreeSpace% GTR% DriveLimit% (Eco Lo spazio libero è sufficiente. ) else (Eco Non abbastanza spazio libero. )
instagram viewer

WMIC è il componente Strumentazione gestione Windows di Windows che viene fornito con un assortimento di comandi che è possibile utilizzare per estrarre informazioni sul PC. Ecco come il comando "wmic" in questo script chiama lo spazio "logicdisk" e lo posiziona nella variabile FreeSpace. Ora puoi semplicemente sostituire la riga "Eco spazio insufficiente" con un comando e-mail blat per inviarti un avviso.

Infine, imposta questo script come processo batch pianificato di 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 impostare le attività pianificate di Windows 4 attività noiose che è possibile automatizzare con l'Utilità di pianificazione di WindowsIl tuo tempo è troppo prezioso per essere sprecato con compiti ripetitivi. Lascia che ti mostri come automatizzare e pianificare le attività. Abbiamo anche alcuni esempi fantastici. Leggi di più .

2. Confronti di stringhe

Un altro prezioso confronto IF che è possibile eseguire in un processo batch è confrontando le stringhe.

Nel seguente esempio vedrai come controllare la tua versione di Windows usando un processo batch. Quindi puoi confrontarlo con la versione di Windows prevista.

Alcuni usi di questo script potrebbero essere utilizzati per i controlli IT quando è necessario eseguire rapidamente uno script e assicurarsi che l'attuale sistema operativo sia il più recente o se necessiti di un aggiornamento.

Ecco come appare questo script.

@echo off. per / f "token = 4-5 delim =. "%% i in ('ver') imposta VERSION = %% i. %% j. se "% version%" == "6.0" fa eco a Windows Vista. se "% version%" == "6.1" fa eco a Windows 7. se "% version%" == "6.2" fa eco a Windows 8. se "% version%" == "6.3" fa eco a Windows 8.1. se "% version%" == "10.0" fa eco a Windows 10. 

Ecco come appare l'output di questo script.

File batch, Windows, programmazione

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

3. Controlla se esiste un file

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

Molte volte il processo 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 alcuni script di Windows che elabora il file in un output di Excel.

(Abbiamo scritto in passato su come farlo utilizzare gli script di Windows per l'elaborazione dei dati in un file Excel 5 utili script di Windows VB per automatizzare l'uso del computerDal monitoraggio del sito Web ai report di sistema, scopri come automatizzare tutto con questi incredibili script VB che puoi programmare in Windows in questo momento. Leggi di più ; qualche buona lettura di fondo.)

L'uso di un file batch per verificare l'esistenza di un file in una directory è semplice e veloce. Ecco come appare quella sceneggiatura.

@echo off. se esiste c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs. ) else (il file rem non esiste. )

Il confronto IF EXISTS è utile per molte cose.

Ad esempio, se hai un sistema o un'applicazione in esecuzione che crea nuovi log degli errori in una cartella specifica quando esiste un problema, è possibile eseguire un processo batch ogni tanto per monitorare se vengono creati nuovi registri errori in modo da poter inviare un mettere in guardia.

4. Controlla se un comando non è riuscito

Un aspetto dello scripting di file batch utilizzato da troppe persone IT o programmatori IT verifica errori.

Esistono molti processi 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 la gente se ne accorge.

È molto più intelligente ricevere un avviso quando un processo batch ha fallito un comando prima la gente inizia a notare. In questo modo è possibile risolvere il problema in modo proattivo.

A tale scopo, utilizza la variabile% errorlevel% restituita dalla maggior parte delle applicazioni e dei comandi dopo l'esecuzione.

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

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

Non è necessario seguire il percorso dell'email. Puoi sempre scrivere un registro degli errori che potresti controllare ogni mattina o avviare una seconda applicazione o un comando che tenta di eseguire la copia utilizzando un comando alternativo. Qualunque azione tu voglia intraprendere, SE% ERRORLEVEL% ti consente di farlo.

Se preferisci utilizzare un'istruzione IF per verificare codici di errore specifici, Windows offre una soluzione piuttosto efficace ampio elenco di codici di errore.

5. Verificare la presenza di parametri mancanti

L'ultima utile istruzione IF non è un comando specifico, ma invece di 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 è 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 appare.

@echo off. IF [% 1] == [] ( GOTO sub_message. ) ALTRO ( xcopy% 1 E: \ backupfolder. ) GOTO eof.: Sub_message. echo Hai dimenticato di specificare il tuo percorso.: EOF.

Se non hai mai usato 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 batch possono essere potenti

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

Ovviamente se vuoi davvero fare un passo avanti, potresti considerare di dare un'occhiata a VBA con la nostra guida creando la tua prima applicazione VBAo forse anche imparare la programmazione Python.

Spesso puoi usare linguaggi di programmazione più avanzati come questi o imparare a usare PowerShell 5 motivi per cui dovresti usare PowerShell invece di Batch ScriptingPowerShell è quello che otterresti se attraversassi il Prompt dei comandi con Batch Scripting, aggiungessi alcune funzionalità extra e aumentassi il livello di diverse tacche. Ecco alcuni motivi per cui dovresti provarlo. Leggi di più , per eseguire molte delle stesse attività per cui attualmente si utilizzano processi batch.

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