Come scrivere uno script batch su Windows
Sai come usare il prompt dei comandi? Se lo fai, puoi scrivere un file batch. Nella sua forma più semplice, un file batch (o script batch) è un elenco di diversi comandi che vengono eseguiti quando si fa doppio clic sul file. I file batch risalgono al DOS, ma funzionano ancora su versioni moderne di Windows.
Gli script di PowerShell e gli script di Bash possono essere più potenti, ma i file batch possono essere ancora molto utili se è necessario eseguire i comandi di base di Windows.
Nozioni di base sui file batch
Un file batch è semplicemente un file di testo salvato con l'estensione del file .bat. Puoi scriverne uno usando Blocco note o un editor di testo più avanzato come Notepad ++, ma non usare un word processor come Microsoft Word.
Creiamo un semplice file batch. Innanzitutto, apri il Blocco note. Digita le seguenti righe:
ECHO OFF ECHO Hello World PAUSE
Quindi, salvare il file facendo clic su File> Salva. Assegnagli un nome che ti piace, ma sostituisci l'estensione file .txt predefinita con l'estensione .bat.
Ad esempio, potresti voler nominarlo hello_world.bat
.
Ora hai un file batch con estensione .bat. Fare doppio clic per eseguirlo. Questo particolare file batch imposta ECHO disattivato (che pulisce l'output nascondendo i comandi da stampare al prompt, stampa il testo "Hello World" sullo schermo, quindi attende che tu prema un tasto prima che finisca.
Se non hai aggiunto PAUSA
al file, il file batch eseguirà semplicemente i suoi comandi e quindi si chiuderà automaticamente. In questo caso, stampa "Hello World" sulla finestra e chiude immediatamente la finestra del prompt dei comandi. Quando vuoi eseguire rapidamente i comandi senza vedere l'output, puoi ometterlo. Se stai eseguendo diversi comandi, puoi inserire il PAUSA
comando tra di loro.
Scrivere un file batch più complesso
È fondamentalmente semplice creare un file batch. L'unica cosa che devi cambiare è ciò che digiti nel Blocco note. Per eseguire diversi comandi, si digita ognuno sulla propria riga e il file batch eseguirà ciascuno in ordine.
Ad esempio, supponiamo di voler scrivere un file batch che esegue diversi comandi di diagnostica di rete. Potremmo voler correre ipconfig / all
per visualizzare le informazioni di rete, ping google.com
per vedere se i server di Google rispondono e tracert google.com
per eseguire un traceroute su google.com e vedere se ci sono problemi sulla strada.
Nella forma più semplice, potremmo semplicemente mettere tutti quei comandi in un file batch, uno dopo l'altro, in questo modo:
ipconfig / all ping google.com tracert google.com PAUSE
Quando eseguiamo questo file, vediamo l'output di ciascun comando subito dopo l'altro. Ma questo non è necessariamente il modo ideale per scrivere un file batch.
Ad esempio, potresti voler aggiungere righe di commento. Qualsiasi riga che inizia con a ::
è una riga di commento e non verrà eseguita. Questo li rende un modo utile per spiegare cosa sta succedendo nel file per chiunque tu possa darlo - o per il tuo futuro sé stesso, che potrebbe dimenticare perché hai messo un certo comando lì dentro.
Si potrebbe anche voler aggiungere il comando "ECHO OFF" all'inizio del file. Questo viene in genere aggiunto all'inizio della maggior parte dei file batch. Quando si esegue questa operazione, i comandi stessi non verranno stampati sul prompt dei comandi, ma i risultati saranno. Ad esempio, vedrai i dettagli della connessione di rete ma non la linea "ipconfig / all". Alla maggior parte delle persone non interessa vedere i comandi, quindi questo può ripulire l'output.
Quindi ecco come potrebbe essere:
:: Questo file batch verifica i problemi di connessione di rete. ECHO OFF :: Visualizza i dettagli della connessione di rete ipconfig / all :: Verifica se Google.com è raggiungibile ping google.com :: Esegui un traceroute per controllare il percorso verso Google.com tracert google.com PAUSE
Ci sono altre direzioni che potresti seguire con un file batch come questo. Ad esempio, si potrebbe desiderare che lo script batch esegua i comandi sopra riportati e quindi scaricare l'output in un file di testo che è possibile visualizzare in seguito. Per farlo, useresti il >>
operatore dopo ogni comando per aggiungere il suo output al file di testo. Come leggeremo comunque l'output dal file di testo, possiamo omettere il PAUSA
comando.
:: Questo file batch verifica i problemi di connessione di rete :: e salva l'output in un file .txt. ECHO OFF :: Visualizza i dettagli della connessione di rete ipconfig / all >> results.txt :: Verifica se Google.com è raggiungibile ping google.com >> results.txt :: Esegui un traceroute per controllare il percorso verso Google.com tracert google. it >> results.txt
Dopo aver eseguito lo script sopra, troverai un file denominato results.txt nella stessa cartella del file batch con l'output dei comandi. La finestra del prompt dei comandi si chiuderà automaticamente una volta eseguito il file batch.
L'esempio che stiamo utilizzando in precedenza si basa sulla stampa effettiva delle informazioni sul prompt dei comandi in modo che l'utente possa leggerle. Tuttavia, molti file batch sono progettati per essere eseguiti in modo non interattivo. Ad esempio, è possibile avere un file batch che elimina più file o directory ogni volta che si fa doppio clic su di esso. Dovresti solo usare il del
comando per cancellare file o il deltree
comando per cancellare le directory. Ricorda, stai solo usando gli stessi comandi che avresti eseguito in una finestra del prompt dei comandi.
Fondamentalmente, questo è il punto della maggior parte dei file batch, solo eseguendo alcuni comandi uno dopo l'altro. Tuttavia, i file batch possono essere effettivamente molto più complessi di questo. Ad esempio, è possibile utilizzare le istruzioni "IF" insieme al comando "GOTO" per verificare il valore di qualcosa e quindi saltare a linee diverse a seconda del risultato. Questo è più come scrivere un piccolo programma reale che uno script veloce e sporco. Questa è una delle ragioni per cui i file .bat sono talvolta chiamati "programmi batch". Se vuoi fare qualcosa di più complesso, troverai molte guide per fare cose specifiche con la programmazione batch online. Ma ora conosci le basi su come lanciare uno semplice insieme.