5 dichiarazioni IF da utilizzare per gli script batch di Windows più intelligenti
Se si lavora molto nei file batch di Windows, il file Dichiarazione IF offre un modo molto potente 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 ogni.
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 d'azione in base al 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 del 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 per / f "usebackq delim == token = 2" %% x in ('wmic logicaldisk dove "DeviceID =' C: '" get FreeSpace / format: valore') imposta FreeSpace = %% x Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Se% FreeSpace% GTR% DriveLimit% (Echo Spazio disponibile sufficiente.) Altro (Echo Spazio libero insufficiente).
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 è come il “wmic” il comando in questo script chiama il “LogicalDisk” spazio e lo inserisce nella variabile di FreeSpace. Ora puoi semplicemente sostituire la linea “Echo Spazio libero insufficiente” 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 Attività noiose 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 prezioso confronto IF che puoi fare in un lavoro batch è confrontando le 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 per / f "token = 4-5 delim =." %% i in ('ver') imposta VERSION = %% i. %% j se "% version%" == "6.0" echo Windows Vista . if "% version%" == "6.1" echo Windows 7 se "% version%" == "6.2" echo Windows 8 se "% version%" == "6.3" echo Windows 8.1 if "% version%" == "10.0" fa eco a Windows 10.
Ecco come appare l'output di questo script.
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 è presente un'istruzione IF in un file batch 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 lavoro 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 se esiste c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs) altro (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 si verifica un problema, puoi 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 viene utilizzato da pochi utenti IT o programmatori controllando gli 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 tuo lavoro batch ha fallito un comando prima la gente inizia a notare. 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 invece per verificare che lo script 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 solo seguire il nome dello script con i parametri che definiscono il percorso del proprio file personale.
Ovviamente, non puoi eseguire correttamente lo 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: \ backupfolder) GOTO eof: sub_message echo Hai dimenticato di specificare il percorso. : 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 propri 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 utilizzare 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.
Scopri di più su: Windows.