Creare un file batch: come scrivere il proprio file BAT

Il cmd.exe, noto anche come prompt dei comandi, è uno dei componenti software più vecchi di Windows. Da decenni lo strumento della riga di comando offre la possibilità di effettuare modifiche dirette ai sistemi operativi Microsoft. Strettamente collegati al prompt dei comandi sono i cosiddetti file batch (noti anche come file BAT) che fanno riferimento a cmd.exe con comandi predefiniti dall’azienda e sono in grado di elaborare i comandi in batch. In questo tutorial scoprirete cosa contraddistingue esattamente questi utili scripte come creare un file batch, salvarlo ed eseguirlo autonomamente.

Cos’è un file batch o BAT?

Un file batch (anche file BAT, script batch o file di lavorazione in batch) è un file di testo che può essere eseguito dallo strumento della riga di comando di Windows cmd.exe come elaborazione in batch. Il prompt dei comandi funge a questo riguardo sia da interprete, sia da ambiente di runtime. In parole semplici, si tratta di un programma informatico o di uno script i cui dati o compiti vengono elaborati in sequenza tramite il prompt dei comandi.

N.B.

Il termine “elaborazione in batch” è stato coniato agli albori dell’elaborazione dei dati, in cui un’elaborazione interattiva era ancora impossibile. I set di dati da elaborare si presentavano all’epoca solitamente sotto forma di schede perforate – i supporti di salvataggio dell’epoca – che venivano elaborati come pila (in inglese batch), scheda dopo scheda. Nei moderni sistemi operativi informatici il termine è divenuto noto soprattutto in relazione alla pubblicazione di MS-DOS (1981) e ai file batch con cui lavora.

Utilizzando il cmd.exe come interprete e ambiente di runtime, i file batch permettono di utilizzare ed eseguire i normali comandi CMD. Inoltre, durante la scrittura di un file batch è possibile utilizzare, tra le altre cose, commenti, ancore, variabili, condizioni e query. Affinché i file di testo possano essere convertiti in file batch, nei sistemi Microsoft più recenti è necessario aggiungere l’estensione .bat. In Windows NT e OS/2 veniva comunemente utilizzata l’estensione .cmd.

Fatto

Nel 2006, con la PowerShell, Microsoft ha pubblicato un framework che dal 2016 viene sviluppato per tutte le piattaforme sotto licenza MIT open source e che consente la programmazione e l’esecuzione di file di elaborazione in batch. La PowerShell mette a disposizione a questo scopo un interprete dei comandi alternativo e una lingua di scripting propria denominata PowerShell Scripting Language.

Creare un file batch: tutorial passo per passo

Creare dei propri file BAT è utile se si eseguono sequenze di comandi ricorrenti che si desidera automatizzare. A questo riguardo può trattarsi di procedure di accesso o dell’avvio di cosiddetti programmi TSR (terminate and stay resident), che devono funzionare costantemente come processi in background. Di seguito vi spieghiamo di quali strumenti avete bisogno per la creazione di file BAT e qual è l’esatta procedura da seguire per creare, salvare ed eseguire i vostri file di elaborazione batch.

Passo 1: scegliere e avviare l’editor

Come già detto, i documenti di testo sono una buona base per creare script batch. Per scrivere un proprio file BAT, quindi, è sufficiente utilizzare un normale editor di testo. Dato che funzionalità come la colorazione della sintassi non sono realmente necessarie, l’editor di Microsoft integrato di default in Windows (in breve, editor), conosciuto anche con il nome originale inglese Notepad (Blocco note), è assolutamente sufficiente. Per aprirlo vi basta digitare il termine “Notepad” o “Editor” nella ricerca di Windows, quindi fare clic sull’icona corrispondente nei risultati della ricerca:

Passo 2: acquisire dimestichezza con i comandi batch

Per creare file batch non c’è bisogno di apprendere un linguaggio di programmazione complesso. Tuttavia la conoscenza dei più comuni comandi di sistema e della relativa funzionalità nei file batch è un requisito imprescindibile; per questo vi consigliamo di acquisire dimestichezza con alcuni comandi prima di cimentarvi nella scrittura del vostro primo script. Tra i comandi più importanti che è assolutamente necessario conoscere figurano i seguenti:

  • ECHO: permette di visualizzare a schermo le stringhe di testo dei comandi eseguiti
  • @ECHO OFF: disabilita la visualizzazione a schermo delle stringhe di testo dei comandi eseguiti
  • START: esegue un file con la rispettiva applicazione standard
  • REM: registra una riga di commento
  • MKDIR/RMDIR: crea e/o cancella una cartella
  • DEL: cancella il(i) file selezionato(i)
  • COPY: copia il(i) file selezionato(i)
  • TITLE: elabora il titolo della finestra CMD
N.B.

L’elenco completo dei principali comandi è contenuto nel nostro dettagliato articolo sul tema “Comandi batch”.

Passo 3: Creare e salvare il primo file batch

Un modo molto semplice per avvicinarsi all’arte della scrittura di file batch consiste nel creare uno script semplice che genera contemporaneamente più cartelle su un supporto dati selezionato del vostro sistema. Se, ad esempio, create un file BAT con il seguente input, una volta eseguito questo crea sull’unità C: due cartelle denominate “Esempio1” ed “Esempio2”:

MKDIR C:\Esempio1
MKDIR C:\Esempio2

Copiate queste due righe in un documento vuoto del Blocco note, come raffigurato nello screenshot seguente:

Per salvare queste istruzioni BAT e/o lo script, fate clic su “File”, quindi selezionate la voce di menu “Salva con nome”. Specificate il percorso di salvataggio desiderato e assegnate un nome allo script (senza dimenticare l’estensione .bat) nel campo “Nome file”:

Passo 4: eseguire lo script BAT creato

Dopo avere creato il file BAT e averlo salvato, avete due possibilità per eseguirlo: potete lanciare lo script nel normale ambiente di Esplora risorse oppure aprire il prompt dei comandi e lanciarlo tramite un comando adatto nella riga di comando.

Tra le due varianti, la prima è senza dubbio la più semplice e adatta per i meno esperti, in quanto richiede semplicemente di navigare fino alla cartella in cui si trova il file batch e successivamente lanciarlo facendo doppio clic.

N.B.

Se uno script batch contiene comandi che richiedono i diritti di amministratore, deve essere lanciato con il ruolo di amministratore. In questo caso selezionate il file di elaborazione batch facendo clic destro, quindi cliccate sul pulsante “Esegui come amministratore”.

Se, invece, volete aprire il file batch tramite la riga di comando, procedete nel modo seguente:

  1. Aprite la funzione di ricerca di Windows e digitate “cmd”.
  2. Fate clic con il tasto sinistro del mouse su “Prompt dei comandi” per avviare la riga di comando normalmente. Se avete bisogno dei diritti di amministratore, fate clic su “Prompt dei comandi” con il tasto destro del mouse, quindi selezionate “Esegui come amministratore”.
  3. Con il comando “change directory” (cd), accedete alla cartella in cui si trova il file batch.
  4. Digitate il nome dello script batch (comprensivo dell’estensione) e premete Invio.

Passo 5: apportare modifiche successive ai file batch creati

Uno script BAT già creato può essere modificato in qualunque momento, ad esempio aggiungendo nuovi comandi o eliminando comandi esistenti, oppure modificando le cartelle in cui è salvato. A questo scopo aprite la cartella in cui si trova lo script batch e cliccatelo con il tasto destro. Selezionate quindi l’opzione “Modifica”:

Esempi di script batch più complessi e di utilizzo frequente

La procedura passo per passo appena illustrata permette di creare file batch di ogni genere, indipendentemente dal tipo e dal numero di comandi di sistema utilizzati. L’utilità di uno script aumenta ovviamente di pari passo con la frequenza con cui viene utilizzato. Per concludere proponiamo pertanto due esempi di file batch con valore a lungo termine che illustrano le possibilità di elaborazione batch tramite riga di comando di Windows.

Script batch con meccanismo di backup semplice

La grande praticità dei file batch è dimostrata dall’esempio seguente, con il quale è possibile far eseguire al sistema backup periodici di una determinata cartella:

XCOPY C:\Cartella di origine C:\Cartella di backup /m /e /y

Se create ed eseguite un file batch contenente la riga sopra indicata, tramite il comando “XCOPY” copiate il contenuto della “cartella di origine” nella “cartella di backup”. Ovviamente anche le directory in cui si trovano le due cartelle devono essere opportunamente specificate. I tre parametri finali hanno l’effetto seguente:

  • /m: fa sì che vengano copiati solo i file aggiornati, evitando che i file già salvati non vengano nuovamente copiati durante i processi di backup successivi.
  • /e: indica che, durante il backup, devono essere considerate anche tutte le sottocartelle presenti nella cartella specificata.
  • /y: elimina la richiesta di conferma che un file di destinazione esistente (al quale sono state apportate modifiche dall’ultimo backup) debba essere sovrascritto.

File batch con funzione di backup più complessa

Il programma di backup sopra indicato permette la copia dei file originali dalla cartella di origine alla cartella di destinazione. Tuttavia è anche possibile creare un file BAT che ripartisce il contenuto di file originali tra diverse cartelle di destinazione, laddove come criterio di selezione può essere applicato per esempio il tipo di file. A questo scopo è necessario utilizzare il ciclo FOR, che permette l’esecuzione multipla di un comando con un argomento variabile:

cd C:\Cartella di origine
FOR %%f IN (*.doc *.txt) DO XCOPY C:\Cartella di origine"%%f" C:\Cartella di backup\Testi /m /y
FOR %%f IN (*.jpg *.png *.bmp) DO XCOPY C:\Cartella di origine "%%f" C:\Cartella di backup\Immagini /m /y

Il codice di comando batch eseguito fa sì che

  • tutti i file contenuti nella cartella di origine e aventi estensione .doc e .txt vengano spostati nella cartella di backup “Testi”;
  • tutti i file contenuti nella cartella di origine e aventi estensione .jpg, .png e .bmp vengano spostati nella cartella di backup “Immagini”;
  • vengano copiati sempre solo i file aggiornati;
  • la richiesta di conferma venga sempre eliminata.
N.B.

Lo script funziona solo per i file il cui nome contiene un’estensioneesplicitata. In caso contrario l’elaborazione batch non riconosce i file rilevanti, anche se di fatto avrebbero un formato pertinente.


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.