.BAT

Rakenne

.BAT-tiedostojen rakenne on hyvin yksinkertainen. Komennot kirjoitetaan rivi kerrallaan, erotettuna rivivaihtomerkillä 0x13 tai 0x13+0x10.

Esimerkkiohjelma

echo Ensimmäinen rivi
 echo Toinen rivi
 echo Kolmas rivi
Yllä oleva ohjelma antaa näytöllä seuraavanlaisen tuloksen:
C:\>echo Ensimmäinen rivi
Ensimmäinen rivi

C:\>echo Toinen rivi
Toinen rivi

C:\>echo Kolmas rivi
Kolmas rivi
Echo-käskyä käytetään tekstirivien tulostamiseen. Tyhjä rivi tulostetaan lisäämällä komennon loppuun piste (echo.). Komentokaiutuksen tilan saa selville kirjoittamalla echo ilman parametrejä. Tulosteena on suomenkielisessä MS-DOS:issa ECHO on ON tai ECHO on OFF.

Komentokaiutus

Kuten edellisessä kappaleessa olevasta esimerkkiohjelmasta huomaa, komentokaiutus on oletuksellisesti päällä, eli jokainen komento näytetään ennen sen suorittamista. Jos komennon eteen kirjoitetaan @-merkki, sitä ei kaiuteta:
 @echo Ensimmäinen rivi
 @echo Toinen rivi
 @echo Kolmas rivi
Ohjelman antama tulos:
Ensimmäinen rivi
Toinen rivi
Kolmas rivi
Komentokaiutuksen voi asettaa pois päältä komennolla echo off.
 @echo off
 echo Ensimmäinen rivi
 echo Toinen rivi
 echo Kolmas rivi

Hyppykäskyt

Komentojonoissa käytettävä hyppykäsky on goto. Sen syntaksi on goto nimi. Nimiöt määritellään koodilla :nimi. Esimerkki:
 @echo off
 :alku
 echo Hello World!
 goto alku
Ohjelma toistaa lausetta "Hello World!" loputtomiin. Ohjelmasta voi poistua kesken näppäinyhdistelmällä Ctrl+C.

Vinkki

Monen käskyn ehtorakenteita voi luoda hyppykäskyjen avulla:
 @echo off
 echo Onko tiedosto.txt olemassa?
 echo.
 if not exist tiedosto.txt goto muuten
  echo -On olemassa!
  echo -On tosiaankin.
  echo -Niin muuten on.
 goto loppu
 :muuten
  echo -Ei ole olemassa!
  echo -Ei niin.
  echo -Ei tosiaankaan.
 :loppu
 echo.
 echo Ohjelma loppuu.
 pause

Parametrit

Komentojonoja kutsuttaessa niille voidaan välittää parametrejä. Niihin viitataan ohjelmassa kirjainyhdistelmällä %parametrinnumero, eli ensimmäinen parametri on %1, toinen %2 jne. Parametrejä voi olla korkeintaan yhdeksän, ja esimerkiksi yhdistelmä %10 tarkoittaa ensimmäistä parametriä, jonka jälkeen tulee nolla.

Esimerkki

@echo off
 echo Ensimmäinen parametri on %1.
 echo Toinen parametri on %2.
 echo Kolmas parametri on %3.
On olemassa myös nk. nollaparametri, eli %0, josta näkyy komentojonon nimen kirjoitusasu, kun sitä kutsuttiin.

Kysymykset

Choice -käskyä käytetään kysymyksen esittämiseen käyttäjälle. Vastaus palautetaan errorlevel -muuttujaan. Komennon syntaksi on seuraava:
 choice /c:vastaukset kysymys
eli esimerkiksi:
 choice /C:ABC Valitse A, B tai C:
Käyttäjä valitsee vastauksen painamalla sille määrättyä kirjainta. Errorlevel määräytyy siten, että ensimmäinen vaihtoehto on 1, toinen 2 jne.
Choice-käskylle on muitakin parametrejä, ja ne saa selville kirjoittamalla komentoriviin choice /?. Windows Vistan choicen syntaksi poikkeaa hieman vanhasta syntaksista:
 choice /C:ABC /M Valitse A, B tai C:

Muuttujat

Komentojonot osaavat käsitellä DOS:in ja Windowsin ympäristömuuttujia, joihin viitataan kirjoittamalla %muuttuja%. Muuttujat voidaan asettaa komennolla set seuraavasti:
 set muuttuja=arvo

Tiedostoihin kirjoitus

Tiedostoja voidaan uudelleenkirjoittaa ohjaamalla käskyjen syötteet niihin. Esimerkki:
 echo Heippa! >tiedosto.txt
Kirjoittaa "Heippa!" tiedostoon tiedosto.txt.
Myös kommentojen tulosten ja virheet voidaan suunnata tiedostoihin
 for /f %%i in ('dir /s /b /a-d') echo tiedosto --- %%i >>ajo.log 2>>virhelogi.log

Näytön tyhjennys

Cls-käsky tyhjentää tiedoston tekstin, mikäli se on mahdollista.

Näppäimen odotus

Pause-käsky odottaa, kunnes painetaan jotakin näppäintä, ja tulostaa tekstin "Jatka painamalla mitä tahansa näppäintä. . .".

>NUL

Jos käskyn loppuun lisää >NUL, sen tulosteet eivät näy.  Tästä on hyötyä erityisesti pause-käskyn kanssa ja joskus myös choicen. 
Vinkki:
Jos tekee ohjelman .bat-muotoon, ja siinä tarvitaan Pause-käskyä, tämä kannattaa tehdä Pause-käskyn loppuun.

For

For-käsky käy läpi tiedostoja ja suorittaa niille halutun komennon. Sen syntaksi on seuraava: for %%muuttuja in (tiedostojoukko) do käsky. Seuraava käsky tulostaa kaikkien nykyisen hakemiston tiedostojen nimet:
 for %%k in (*.*) do echo %%k
Uusien Windowsien komentoriveissä for-käskylle on muitakin käyttötarkoituksia. Ne saa selville kirjoittamalla komentoriviin for /?.

Shift

Shift-käsky siirtää parametrejä yhden pykälän vasemmalle. Eli parametri, jonka numero oli ennen käskyä 2, onkin nyt parametri numero 1.

Kommentit

Koodia voi kommentoida rem-"käskyllä" seuraavasti:
 rem Kommentti