Tutto per lavorare con Windows: il miglior sistema operativo di Microsoft. Copriamo tutto, dal programma Windows 10 Insider a Windows 11. Fornisce tutte le ultime notizie su Windows 10 e altro ancora.

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

209

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

In questo articolo, imparerai 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 creare 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 corso d’azione diverso 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 e-mail che dice "Spazio sul disco rigido troppo basso".

Per creare uno script che confronti l’attuale spazio libero sul disco rigido con il tuo limite, dovrai creare il seguente script batch e salvarlo come file .bat.

@echo offset DriveLimit=300000000for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%xEcho FreeSpace="%FreeSpace%"Echo Limit="%DriveLimit%"If %FreeSpace% GTR %DriveLimit% (Echo There is enough free space.) else (Echo Not enough free space.)

Nello script, WMIC è il componente Strumentazione gestione Windows (WMI) di Windows che viene fornito con un assortimento di comandi che puoi utilizzare per estrarre informazioni dal tuo PC.

Questo è il modo in cui il comando "wmic" in questo script chiama lo spazio del disco logico e lo inserisce nella variabile FreeSpace .

Ora puoi semplicemente sostituire la riga Echo Spazio libero insufficiente con un comando per inviarti un avviso via e-mail. Imposta lo script in modo che venga eseguito ogni giorno.

2 Confronti di stringhe

Un altro prezioso confronto IF che puoi eseguire in un processo batch è confrontare le stringhe.

Nell’esempio seguente, vedrai come controllare la tua versione di Windows utilizzando un processo batch. Quindi puoi confrontarlo con la versione di Windows prevista.

Alcuni usi di questo script sarebbero per i controlli IT quando è necessario eseguire rapidamente uno script e assicurarsi che il sistema operativo corrente sia l’ultimo o se è necessario un aggiornamento.

Ecco come appare questo script:

@echo offfor /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%jif "%version%" == "6.0" echo Windows Vista.if "%version%" == "6.1" echo Windows 7if "%version%" == "6.2" echo Windows 8if "%version%" == "6.3" echo Windows 8.1if "%version%" == "10.0" echo Windows 10.

Ecco come appare l’output di questo script:

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

La possibilità di confrontare le stringhe in un batch apre un intero elenco di possibilità. Se esplori tutte le informazioni che puoi ottenere da un comando WMIC, vedrai quante statistiche puoi monitorare sul tuo computer.

Inoltre, puoi persino utilizzare i processi batch pianificati per ricevere avvisi su questi.

3 Verificare se esiste un file

Un’altra situazione utile in cui un’istruzione IF in un file batch consiste nel verificare l’esistenza di un file di dati.

Molte volte, il processo batch è solo uno strumento di monitoraggio che è possibile pianificare per verificare la presenza di nuovi file di dati in ingresso in una directory specifica. Quindi, puoi copiare quel file in un’altra posizione o dare il via a uno script di Windows che elabora il file in un output di Excel.

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

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

Il confronto IF EXISTS è utile per molte cose.

Ad esempio, se hai un sistema o un’applicazione in esecuzione che crea nuovi registri degli errori in una cartella specifica quando si verifica un problema, puoi eseguire un processo batch ogni tanto. In questo modo, puoi facilmente monitorare se vengono creati nuovi registri degli errori in modo da poter inviare un avviso.

4 Verificare se un comando non è riuscito

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

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

È molto più intelligente ricevere un avviso quando il processo batch ha fallito un comando prima che le persone inizino a notarlo. In questo modo, puoi risolvere il problema in modo proattivo.

Puoi farlo utilizzando la variabile %errorlevel% restituita dalla maggior parte delle applicazioni e dei comandi dopo l’esecuzione. Tutto quello che devi fare è seguire il tuo comando con il comando IF %ERRORLEVEL%.

@echo offxcopy C:omefolder E:backupfolderIF %ERRORLEVEL% NEQ 0 <blat command to send email>

Se l’applicazione o il comando restituisce uno zero, va tutto bene. In caso contrario, è necessario inviarsi un’e-mail.

Tuttavia, non è necessario seguire il percorso e-mail. 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.

Inoltre, se preferisci utilizzare un’istruzione IF per verificare la presenza di codici di errore specifici, Windows offre un elenco piuttosto ampio di codici di errore di sistema.

5 Verificare la presenza di parametri mancanti

L’ultima utile istruzione IF non è per un comando specifico ma invece per verificare che lo script abbia 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.

Non puoi eseguire correttamente lo script senza il percorso specificato, quindi potresti voler inserire un’istruzione IF all’inizio dello script per assicurarti che entrambi i parametri siano inseriti.

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

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

In generale, le istruzioni IF sono troppo utili e non è necessario scrivere troppi codici per usarle effettivamente. Naturalmente, se vuoi fare un salto di qualità, potresti considerare di dare un’occhiata a VBA con la nostra guida sulla creazione della tua prima applicazione VBA.

I lavori in batch possono essere potenti

Molte persone hanno iniziato a utilizzare i lavori batch per attività semplici che devono essere eseguite in sequenza. Per fortuna, con le istruzioni IF, è possibile aggiungere molta più logica ai tuoi script.

Inoltre, puoi spesso utilizzare linguaggi di programmazione più avanzati e utilizzare PowerShell per eseguire molte delle stesse attività per le quali utilizzi attualmente i processi batch.

Fonte di registrazione: www.makeuseof.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More