Linguaggio di scripting per MS-DOS, ormai in disuso per l'utilizzo delle GUI (Graphical User Interface). I comandi di questo linguaggio possono essere usati da linea di comando oppure in un file di testo rinominato con estensione .bat.

Il file .bat più famoso è forse l' Autoexec.bat che gestiva l'ultima parte dell'avvio di sistemi operativi MS-DOS di quelli come Windows 95 e 98.

I comandi più comuni sono:

   cd (change directory) per cambiare cartella
   dir per visualizzare il contenuto della cartella corrente
   comando /? fornisce informazioni sul comando 

e si trovano all'interno del file command.com

Altri file di estensione exe, com o bat (detti comandi esterni) 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 che files con diverse estensioni abbiano lo stesso nome.

Alcuni Comandi per Windows 98

DIR
CALL
CHCP
RENAME
REN
ERASE
DEL
TYPE
REM
COPY
PAUSE
DATE
TIME
VER
VOL
CD
CHDIR
MD
MKDIR
RD
RMDIR
BREAK
VERIFY
SET
PROMPT
PATH
EXIT
CTTY
ECHO
LOCK
UNLOCK
GOTO
SHIFT
IF
FOR
CLS
TRUENAME
LOADHIGH LH
LFNFOR

Alcuni Comandi Esterni per Windows 98

DISKCOPY.COM EDIT.COM KEYB.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 NLSFUNC.EXE SORT.EXE SUBST.EXE XCOPY.EXE XCOPY32.EXE

Esempi

Hello World! - Stampa a monitor la scritta "Hello World!" ed esce

   @echo Hello World!

Creazione di un menù

   @echo off
   cls
   
   :RICHIESTE
   echo.
   echo Cosa pensi di Wikipedia?
   echo (1) Grandiosa!
   echo (2) Così così...
   echo.
   choice /c:12 Seleziona una risposta...
   
   if errorlevel 2 goto DUE
   if errorlevel 1 goto UNO
   if not errorlevel 0 goto END
   
   :UNO
   echo Anche io!
   pause
   goto END
   
   :DUE
   echo Prova a dare un'occhiata ai progetti analoghi su
   echo http://it.wikipedia.org/wiki/Pagina_principale#Oltre_Wikipedia
   pause
   goto END
   
   :END
   echo.
   echo Ciao ciao
   echo.
   pause
   cls
   @echo on