Dalam MS-DOS, OS/2 dan Windows, **fail kelompok** (**BI**: *batch file*) adalah fail teks yang mengandungi beberapa arahan di dalamnya bertujuan untuk dilakukan oleh pentafsir perintah. Teks yang mengadungi arahan tersebut disimpan dengan sambungan fail '`.bat`'.

WikibooksWikibooks
[[wikibooks:|]] Wikibooks mempunyai maklumat lanjut mengenai:
***Guide to Windows commands***

Simbol-simbol
-------------

| Simbol | Kegunaan |
| --- | --- |
| `:` | Penanda tempat. |
| `""` | Mengkelompokkan argumen-argumen. |
| `%` | mengalamatkan sesuatu pembolehubah |
|

Perintah dalam fail kelompok
----------------------------

### echo

**echo** akan mencetak perkataan-perkataan selepasnya (yang dipisahkan dengan ruang kosong).
Selalunya pada permulaan fail batch akan diletakkan `@echo off`. Tujuannya adalah untuk mengelakkan arahan-arahan dalam fail batch tersebut daripada dicetak pada cangkerang.
Contoh penggunaan:

```
  @echo off
  echo kata1 kata2 kata3 ... kataN
```

Arahan di atas akan mencetak `kata1` hingga kataN sehinggalah barisan baru dibuat.

### rem

**rem** sebenarnya hanyalah bertujuan untuk menulis komen. Singkatan untuk perkataan Inggeris ***rem**ark*. Baris ayat yang telah dipisahkan dengan ruang kosong selepas `rem` adalah komen (perkataan pertama hingga hujung baris).  

Contoh penggunaan:

```
  @echo off 
  rem komen1 komen2 komen3 ... komenN
```

Tiada apa-apa hasilan yang akan dipaparkan dengan arahan ini kerana ia hanyalah komen yang tersembunyi. Namun, sekiranya `@echo off` tidak ditulis atau menulis `@echo on` pada permulaan fail, cetakan berikut akan terhasil:

```
  rem komen1 komen2 komen3 ... komenN
```

### Kenyataan goto

**goto** mempunyai fungsi yang sesuai dengan maksudnya iaitu "pergi kepada". Kenyataan ini ditulis kemudian diikuti dengan nama label. Label boleh diletak di mana-mana yang perlu (mengikut masalah), `goto` akan menunjuk untuk pergi kepada label tersebut lalu melakukan perintah yang datang selepas nama label tersebut.  

Contoh penggunaan:

```
  goto namaLabel
  :namaLabel
  rem beberapa arahan.
```

### Kenyataan call

**call** digunakan untuk memanggil tatacara-tatacara tertentu. Simbol `:` ditulis selepas kenyataan ini bagi mununjuk nama tatacara.  

Contoh penggunaan:

```
  call:TATACARA
  rem beberapa arahan di sini.
  goto:EOF  
 
  :TATACARA
  rem beberapa arahan untuk tatacara ini.
  goto:EOF
```

Kenyataan `goto:EOF` bermaksud "pergi kepada penamat fail".

Pengulangan
-----------

Pengulangan (*looping*) adalah satu tindakan mengulang sesuatu arahan. Dalam pengulangan, kenyataan `goto` digunakan. Penulisannya adalah seperti berikut:

```
  :ulang
  rem arahan-arahan akan diletakkan di sini.
  goto ulang
```

Tatacara
--------

**Tatacara** adalah sama seperti fungsi dalam C atau C++. Ia mengandungi beberapa arahan di dalamnya. Berikut adalah contoh tatacara dan pemanggilannya ke induk:

```
 @echo off
 rem *********Induk
 call:CETAK_INDAH_DUNIA
 goto:EOF  
  

 rem *********mula tatacara CETAK_INDAH_DUNIA
 :CETAK_INDAH_DUNIA
 echo Indahnya Dunia.
 goto:EOF
```

Contoh
------

* **Indahnya Dunia**

```
 @echo off
 echo Indahnya dunia
```

* **Pemasa**

```
 @echo off
 set x=1
 :ulang
 if "%x%"=="6000" goto:EOF
 set /a x+=1
 goto ulang
```

Lihat juga
----------

* Cangkerang
* cmdFX.exe
* Bahasa C

Pautan luar
-----------

* **(Inggeris)** Arahan-arahan fail kelompok
* **(Inggeris)** Microsoft XP-Batch files