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 comandi 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 off
color 02
:SCROLLR
echo %random% %random% %random% %random%
goto SCROLLR
- spegnimento computer dopo 30 secondi
@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 io!
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
Collegamenti esterni