{"id":275079,"date":"2023-10-23T17:23:00","date_gmt":"2023-10-23T14:23:00","guid":{"rendered":"https:\/\/howto.mediadoma.com\/?p=275079"},"modified":"2025-03-13T18:50:19","modified_gmt":"2025-03-13T15:50:19","slug":"5-istruzioni-if-da-utilizzare-per-script-batch-di-windows-piu-intelligenti","status":"publish","type":"post","link":"https:\/\/howto.mediadoma.com\/it\/5-istruzioni-if-da-utilizzare-per-script-batch-di-windows-piu-intelligenti\/","title":{"rendered":"5 istruzioni IF da utilizzare per script batch di Windows pi\u00f9 intelligenti"},"content":{"rendered":"\n<p>Se lavori molto sui file batch di Windows, l&#8217;istruzione IF offre un modo molto potente per aggiungere flessibilit\u00e0 ai tuoi script.<\/p>\n<p>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.<\/p>\n<p>Se sei pronto per iniziare a creare script, iniziamo.<\/p>\n<h2>1 Confronta i valori<\/h2>\n<p>Una delle cose di base che di solito devi fare in uno script batch \u00e8 confrontare due valori e seguire un corso d&#8217;azione diverso a seconda del confronto.<\/p>\n<p>Ad esempio, supponiamo che tu voglia scrivere uno script batch che controlli quotidianamente le dimensioni del disco rigido del tuo computer. Se \u00e8 inferiore a 3 GB, desideri ricevere un rapporto e-mail che dice &quot;Spazio sul disco rigido troppo basso&quot;.<\/p>\n<p>Per creare uno script che confronti l&#8217;attuale spazio libero sul disco rigido con il tuo limite, dovrai creare il seguente script batch e salvarlo come file .bat.<\/p>\n<pre><code>@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.)<\/code><\/pre>\n<p>Nello script, <strong>WMIC<\/strong> \u00e8 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.<\/p>\n<p>Questo \u00e8 il modo in cui il comando &quot;wmic&quot; in questo script chiama lo spazio del <strong>disco logico<\/strong> e lo inserisce nella variabile <strong>FreeSpace .<\/strong><\/p>\n<p>Ora puoi semplicemente sostituire la riga <strong>Echo Spazio libero insufficiente<\/strong> con un comando per inviarti un avviso via e-mail. Imposta lo script in modo che venga eseguito ogni giorno.<\/p>\n<h2>2 Confronti di stringhe<\/h2>\n<p>Un altro prezioso confronto IF che puoi eseguire in un processo batch \u00e8 confrontare le stringhe.<\/p>\n<p>Nell&#8217;esempio seguente, vedrai come controllare la tua versione di Windows utilizzando un processo batch. Quindi puoi confrontarlo con la versione di Windows prevista.<\/p>\n<p>Alcuni usi di questo script sarebbero per i controlli IT quando \u00e8 necessario eseguire rapidamente uno script e assicurarsi che il sistema operativo corrente sia l&#8217;ultimo o se \u00e8 necessario un aggiornamento.<\/p>\n<p>Ecco come appare questo script:<\/p>\n<pre><code>@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.<\/code><\/pre>\n<p>Ecco come appare l&#8217;output di questo script:<\/p>\n<p><a href=\"https:\/\/howto.mediadoma.com\/wp-content\/uploads\/2022\/10\/post-189893-633fa24c02082.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/howto.mediadoma.com\/wp-content\/uploads\/2022\/10\/post-189893-633fa24c02082.png\" alt=\"5 istruzioni IF da utilizzare per script batch di Windows pi\u00f9 intelligenti\" ><\/a><\/p>\n<p>La possibilit\u00e0 di confrontare le stringhe in un batch apre un intero elenco di possibilit\u00e0. Se esplori tutte le <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/aa394531(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">informazioni che puoi ottenere da un comando WMIC<\/a>, vedrai quante statistiche puoi monitorare sul tuo computer.<\/p>\n<p>Inoltre, puoi persino utilizzare i processi batch pianificati per ricevere avvisi su questi.<\/p>\n<h2>3 Verificare se esiste un file<\/h2>\n<p>Un&#8217;altra situazione utile in cui un&#8217;istruzione IF in un file batch consiste nel verificare l&#8217;esistenza di un file di dati.<\/p>\n<p>Molte volte, il processo batch \u00e8 solo uno strumento di monitoraggio che \u00e8 possibile pianificare per verificare la presenza di nuovi file di dati in ingresso in una directory specifica. Quindi, puoi copiare quel file in un&#8217;altra posizione o dare il via a uno script di Windows che elabora il file in un output di Excel.<\/p>\n<p>L&#8217;utilizzo di un file batch per verificare se esiste un file in una directory \u00e8 semplice e veloce. Ecco come appare quello script:<\/p>\n<pre><code>@echo offif exist c:tempdatafile.txt (%WINDIR%SysWOW64cmd.exe cscript LoadToExcel.vbs) else (rem file doesn't exist)<\/code><\/pre>\n<p>Il confronto IF EXISTS \u00e8 utile per molte cose.<\/p>\n<p>Ad esempio, se hai un sistema o un&#8217;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.<\/p>\n<h2>4 Verificare se un comando non \u00e8 riuscito<\/h2>\n<p>Un aspetto dello scripting di file batch che troppo pochi addetti IT o programmatori utilizzano \u00e8 il controllo degli errori.<\/p>\n<p>Ci sono molti lavori batch in giro che eseguono attivit\u00e0 IT critiche come il backup di file importanti o l&#8217;esecuzione di operazioni di copia dei file. Quando questi lavori batch falliscono, i sistemi si guastano e le persone di solito se ne accorgono.<\/p>\n<p>\u00c8 molto pi\u00f9 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.<\/p>\n<p>Puoi farlo utilizzando la variabile %errorlevel% restituita dalla maggior parte delle applicazioni e dei comandi dopo l&#8217;esecuzione. Tutto quello che devi fare \u00e8 seguire il tuo comando con il comando <strong>IF %ERRORLEVEL%<\/strong>.<\/p>\n<pre><code>@echo offxcopy C:omefolder E:backupfolderIF %ERRORLEVEL% NEQ 0 &lt;blat command to send email&gt;<\/code><\/pre>\n<p>Se l&#8217;applicazione o il comando restituisce uno zero, va tutto bene. In caso contrario, \u00e8 necessario inviarsi un&#8217;e-mail.<\/p>\n<p>Tuttavia, non \u00e8 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.<\/p>\n<p>Inoltre, se preferisci utilizzare un&#8217;istruzione IF per verificare la presenza di codici di errore specifici, Windows offre un <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms681382(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">elenco piuttosto ampio di codici di errore di sistema<\/a>.<\/p>\n<h2>5 Verificare la presenza di parametri mancanti<\/h2>\n<p>L&#8217;ultima utile istruzione IF non \u00e8 per un comando specifico ma invece per verificare che lo script abbia ricevuto i parametri di input appropriati.<\/p>\n<p>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&#8217;utente deve solo seguire il nome dello script con i parametri che definiscono il percorso del file personale.<\/p>\n<p>Non puoi eseguire correttamente lo script senza il percorso specificato, quindi potresti voler inserire un&#8217;istruzione IF all&#8217;inizio dello script per assicurarti che entrambi i parametri siano inseriti.<\/p>\n<pre><code>@echo offIF [%1]==[] (GOTO sub_message) ELSE (xcopy %1 E:backupfolder)GOTO eof:sub_messageecho You forgot to specify your path.:eof<\/code><\/pre>\n<p>Se non hai mai utilizzato parametri con script batch in precedenza, il simbolo di percentuale seguito da un numero rappresenta la variabile del parametro. <strong>%1<\/strong> \u00e8 il primo parametro, %2 \u00e8 il secondo e cos\u00ec via.<\/p>\n<p>In generale, le istruzioni IF sono troppo utili e non \u00e8 necessario scrivere troppi codici per usarle effettivamente. Naturalmente, se vuoi fare un salto di qualit\u00e0, potresti considerare di dare un&#8217;occhiata a VBA con la nostra guida sulla <a href=\"https:\/\/www.makeuseof.com\/tag\/simple-app-vba\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">creazione della tua prima applicazione VBA<\/a>.<\/p>\n<h2>I lavori in batch possono essere potenti<\/h2>\n<p>Molte persone hanno iniziato a utilizzare i lavori batch per attivit\u00e0 semplici che devono essere eseguite in sequenza. Per fortuna, con le istruzioni IF, \u00e8 possibile aggiungere molta pi\u00f9 logica ai tuoi script.<\/p>\n<p>Inoltre, puoi spesso utilizzare linguaggi di programmazione pi\u00f9 avanzati e utilizzare PowerShell per eseguire molte delle stesse attivit\u00e0 per le quali utilizzi attualmente i processi batch.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/www.makeuseof.com\" class=\"external external_icon\">www.makeuseof.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esistono diversi tipi di istruzioni IF che puoi utilizzare in un file batch di Windows per risparmiare tempo e fatica. Dai un&#8217;occhiata a questi esempi per saperne di pi\u00f9.<\/p>\n","protected":false},"author":1,"featured_media":189894,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[2936],"tags":[3059],"class_list":["post-275079","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programmazione","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/275079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=275079"}],"version-history":[{"count":1,"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/275079\/revisions"}],"predecessor-version":[{"id":300343,"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/275079\/revisions\/300343"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/189894"}],"wp:attachment":[{"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=275079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=275079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=275079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}