In informatica, e in particolare nella terminologia di DOS e Windows, un file batch è un file di testo che contiene una sequenza di comandi per l'interprete di comandi del sistema, solitamente command.com o cmd.exe.
Introduzione Il file batch viene eseguito dall'interprete dei comandi mandando in esecuzione i comandi elencati nel file uno dopo l'altro, nello stesso ordine in cui compaiono nel file. Il concetto di file batch è analogo a quello di shell script per i sistemi Unix e infatti può essere considerato un rudimentale linguaggio di scripting, anche se i costrutti di controllo di flusso a disposizione sono veramente pochi: if, for e goto.
I file batch di MS-DOS devono avere estensione .bat per essere riconosciuti come tali dal sistema operativo, mentre i sistemi NT (Windows NT/2000/XP/Vista/7 e successivi) accettano anche l'estensione .cmd.
Un particolare e noto file batch è AUTOEXEC.BAT perché viene eseguito automaticamente all'avvio di tutti i sistemi operativi basati su MS-DOS.
I comandi utilizzabili sono tutti quelli disponibili per il prompt di sistema e si dividono in due categorie: comandi interni, come cd per cambiare la cartella di lavoro o dir per elencarne il contenuto. Alcuni di essi sono specifici proprio per i file batch, avendo ben poco o nessun senso se utilizzati direttamente dal prompt dei comandi per un singolo comando. comandi esterni, come format o chkdsk.
Comandi interni I comandi interni sono sempre disponibili senza accedere al disco perché integrati all'interno dell'interprete dei comandi.
Ecco alcuni comandi interni: dir call chcp ren o rename del o erase type rem copy pause date time ver vol cd o chdir md o mkdir rd o rmdir break verify set prompt path exit echo goto shift if for cls lh o loadhigh
Alcuni comandi interni introdotti con Windows 95: start lfnfor truename lock unlock
Comandi esterni
I comandi esterni sono file di estensione .exe, .com o gli stessi file con estensione .bat o .cmd, che possono essere usati come comandi e chiamati (senza bisogno di scrivere l'estensione: scrivere diskcopy o diskcopy.com dà lo stesso risultato; esiste comunque una precedenza nel caso di file con nomi uguali ma estensioni diverse).
Ecco alcuni comandi esterni: robocopy.exe diskcopy.com edit.com mode.com more.com sys.com attrib.exe chkdsk.exe debug.exe deltree.exe fc.exe find.exe label.exe mem.exe move.exe net.exe nlsfunc.exe shutdown.exe sort.exe subst.exe xcopy.exe xcopy32.exe
Per avere informazioni su questi comandi, digitare da cmd.exe il comando stesso seguito da /?, per esempio: xcopy /?
Esempi Hello world: stampa a video della scritta "Hello world!" @echo Hello world! pause Effetto Matrix @echo off color 02 :SCROLLR echo %random% %random% %random% %random% goto SCROLLR
spegnimento computer dopo 30 secondi shutdown -s Creazione di un menù @echo off title Opinione su Wikipedia cls color 9E
:RICHIESTA echo. echo Che cosa pensi di Wikipedia? echo 1. Grandiosa. echo 2. Così così. echo 3. Esci echo. set /p "Scelta=Scegli un'opzione e premi il tasto Invio: " cls IF "%Scelta%"=="1" GOTO UNO IF "%Scelta%"=="2" GOTO DUE IF "%Scelta%"=="3" GOTO TRE color CF echo. echo Scelta non valida: premi un tasto compreso tra 1 e 3. echo. echo Premi un tasto per continuare... pause > nul cls color 9E goto RICHIESTA
:UNO echo. echo Anche per me! goto TRE
:DUE echo. echo Prova a dare un'occhiata ai progetti analoghi a questo indirizzo: echo http://it.wikipedia.org/wiki/Wikimedia_Foundation#Progetti echo. echo Premi un tasto per aprire Wikipedia... pause > nul cls echo. echo Apertura di Wikipedia in corso... start http://it.wikipedia.org/wiki/Wikimedia_Foundation#Progetti cls
:TRE echo. echo Ciao. echo. echo Premi un tasto per uscire... pause > nul exit /b
Voci correlate Comandi di MS-DOS Batch processing
Collegamenti esterni
Categoria:Formati di file eseguibili Categoria:Linguaggi di scripting Categoria:Terminologia informatica