I comandi DOS per creare un file batch

Creare un file batch con i comandi DOS come ECHO, START, CD, DIR, REM, MKDIR, RMDIR, SET, COPY, FOR e PAUSE

Un file batch è un file di testo che contiene una sequenza di comandi DOS e viene usato per scrivere degli script eseguibili con un semplice doppio click. In questo tipo di file, ogni riga viene eseguita in modo sequenziale, si tratta di uno dei motivi per cui il modo in cui si scrivono i file batch viene considerato un linguaggio di scripting e non di programmazione (non mette a disposizioni comandi e strutture dati avanzate).

Un esempio molto famoso di file batch è il file AUTOEXEC.BAT che viene eseguito all’avvio di quasi tutte le versioni di Windows e serve per caricare i driver e inizializzare le variabili di ambiente di vari dispositivi montati sul sistema (ad esempio tastiera, mouse, scheda audio, stampante e directory temporanee).

Per poter scrivere un file batch si può utilizzare qualsiasi editor di testo come il blocco note (avviabile nella lista dei programmi oppure con il comando notepad dal prompt dei comandi). I comandi utilizzabili per la creazione di un file batch vengono suddivisi in due grani categorie:

  • Comandi interni: si trovano in Command.com e vengono caricati in memoria all’avvio del sistema;
  • Comandi esterni: si tratta di file che risiedono sul disco ed hanno estensione exe, COM o BAT.

I principali comandi utilizzati in MS-DOS e utilizzati nei file batch sono:

  • ECHO [Messaggio]: consente di visualizzare il Messaggio sullo schermo. Ad esempio:
      echo Ecco il messaggio da mostrare

  • @ECHO OFF: consente di non visualizzare i comandi eseguiti ma solo la loro esecuzione;
  • START: esegue un file con l’applicazione predefinita;
  • CD: consente di entrare in una cartella. Ad esempio:
      CD [desktop]

  • DIR: visualizza il contenuto nella cartella corrente e non richiede nessun parametro.
      DIR

  • REM: viene utilizzato per inserire dei commenti all’interno del programma.
      REM questo è il mio commento

  • MKDIR (MD): acronimo di Make Directory, consente di creare una nuova cartella.
      MKDIR c:\NuovaCartella

  • RMDIR (RD): il comando Remove Directory viene utilizzando per cancellare una cartella.
      RMDIR[CartellaDaEliminare]

  • SET: consente di inizializzare una variabile
      set NOME=Luca
      ECHO Il nome e': %NOME%

    Il comando SET può avere due opzioni:

    • /A per assegnare ad una variabile un’espressione numerica, in sua assenza vengono trattati come stringhe.
    • /P che consente l’input da parte dell’utente, ad esempio SET /P nome=Qual è il tuo nome?

    In DOS il nome delle variabili non è case-sensitive, inoltre sono messe a disposizione delle variabili predefinite %1, %2, … %9 che contengono i parametri passati dalla linea di comando. Ad esempio scrivendo:

      C:> 9 14 8

    Avremo che nella variabile %1 sarà contenuto il numero 9, nella variabile %2 il numero 14 e nella variabile %3 il numero 8. Il DOS mette a disposizione anche altre due variabili: %0 che contiene il nome del file batch e %* che contiene l’elenco completo dei parametri passati.

  • COPY: consente di copiare uno o più file. Un comando simile è XCOPY ma a differenza di COPY consente di copiare file e cartelle con maggiori opzioni
  • FOR: consente di iterare e fare una serie operazioni in successione:
      FOR %myVar IN (miaLista) DO mioComando [parametri]


    La variabile miaLista indica un insieme di qualsiasi elementi separati da uno spazio, da una virgola o da un punto e virgola, mentre la variabile myComando rappresenta il comando da eseguire ad ogni operazione. I parametri sono le opzioni del comando da eseguire, mentre myVar verrà sostituito ad ogni iterazione da un elemento estratto, in modo consecutivo, dalla lista. Ecco un esempio per stampare i numero da 1 a 3:

      FOR %A IN (1 2 3) DO ECHO %a

  • PAUSE: blocca l’esecuzione del file finchè l’utente non preme un tasto:
      PAUSE

    Ecco cosa sarà visualizzato:

    Comando DOS PAUSE

  • I comandi DOS FIND, SORT, RENAME, TYPE, DISKCOPY, FORMAT, CLS, CALL, IF, IF NOT EXIST, ECHO, CHOICE e GOTO

    Altri comandi interessanti da utilizzare nei file batch sono:

  • FIND: consente all’utente di ricercare una stringa all’interno di un file restituendo le righe in cui è stata trovata.
      FIND "Strinda da cercare" [Percorso e nome del file]
      FIND "Marco" [file.ext]
      FIND "marco" [Documenti\file.ext]

    La ricerca della stringa è case-sensitive, per cui le lettere maiuscole e le lettere minuscole vengono considerate diverse tra loro. E’ possibile inserire ulteriori opzioni di ricerca con:

    • /V per mostrare tutte le righe che non contengono la stringa cercata;
    • /C visualizza il numero totale di righe in cui è stata trovata la stringa;
    • /N visualizza il numero delle righe in cui non è stata trovata la stringa;
    • /I serve per ignorare il case-sensitive dei caratteri;
  • SORT: permette di ordinare i dati ed è in grado di ordinare i dati memorizzati in un file.
      SORT [/R] [/+n] <[c:\path\file.ext]> [destinazione]

    Utilizzando il comando SORT senza nessuna opzione i dati verranno memorizzati in ordine alfabetico. In alternativo, con /R è possibile invertire l’ordine dei caratteri; mentre con /+n viene effettuato un ordinamento sulla base della colonna n.

      SORT file.txt

  • RENAME (REN): modifica il nome di un file. Nel caso in cui esistesse già un file con lo stesso nome e la stessa estensione il file non verrà rinominato.
      RENAME [VecchioFile.ext] [NuovoFile.ext]

  • TYPE: consente di visualizzare il contenuto di un file di testo (ASCII). Un esempio di utilizzo di questo comando è:
      TYPE info.txt

  • DISKCOPY: consente di copiare il contenuto da un’unità di origine ad un’unità di destinazione.
      DISKCOPY [unità di origine:][unità di destinazione:]

    L’unità di origine e quella di destinazione possono coincidere coincidono, quando ciò accade il comando DISKCOPY legge i dati dall’unità di origine, copia i dati in memoria e chiede all’utente di inserire inserire il disco di destinazione.

      DISKCOPY f: f:

  • FORMAT: questo comando formatta il disco nell’unità specificata. Viene utilizzato per pulire il contenuto di un disco o per preparare un disco alla memorizzazione di dati e programmi.
      FORMAT [unità][opzioni]

    Le opzioni per il comando FORMAT sono numerose, tra queste troviamo le seguenti:

    • /B per riservare spazio per i file di sistema nascosti;
    • /N:n per formattare con n settori per traccia;
    • /T:t per specificare il numero di tracce per faccia del disco;
    • /V per inserire il nuovo nome del disco alla fine della formattazione;
    • /S per creare un disco di avvia formattandolo e copiandoci i file di sistema.

    Il comando FORMAT restituisce come risultato dei numeri:

    • 0 indica che la formattazione è riuscita correttamente;
    • 3 comunica che la formattazione è stata interrotta dall’utente;
    • 4 viene visualizzato se è accaduto un errore fatale;
    • 5 indica che la formattazione del disco è stata interrotta.

    Ecco un esempio di come formattare un floppy con il comando DOS:

      FORMAT a:

  • CLS: utilizzato pulire la schermata da eventuali messaggi e comandi precedenti.
  • CALL: serve ad avviare l’esecuzione di un altro file batch senza interrompere l’esecuzione del file attuale. Ad esempio:
      CALL SecondaFile.bat

  • IF: rappresenta un controllo condizionale per eseguire determinare operazioni solo se la condizione è verificata, ad esempio:
      IF EXIST file.txt GOTO :FINE
    ...
    :FINE

    Se il file.txt esiste nella directory corrente l’esecuzione salta all’etichetta FINE (un’etichetta viene indicata con :NomeEtichetta). Il comando IF si può utilizzare anche nella versione IF NOT EXIST:

    :INIZIO
    ...
      IF NOT EXIST file.txt GOTO :INIZIO

  • ECHO: consente di inserire una riga vuota.
      ECHO

  • Per maggiori informazioni è possibile utilizzare il comando help dal prompt dei comandi o per avere indicazioni su comando specifici come CHOICE e GOTO è possibile indicare il comando help seguito dal comando.

      help goto

Pubblicato in Guide, Programmazione, Windows Taggato con: , , ,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*