Cara Menggunakan Batch File For Loop di Windows

Batch file adalah file teks sederhana yang berisi serangkaian perintah yang akan dieksekusi secara berurutan oleh Command Prompt di Windows. Batch file dapat digunakan untuk mengotomatisasi tugas-tugas yang berulang, menjalankan program, atau melakukan operasi file dan folder.

Salah satu fitur penting dari batch file adalah kemampuan untuk membuat loop, yaitu mengulangi perintah tertentu untuk setiap elemen dalam sebuah kumpulan data. Dengan menggunakan loop, Anda dapat menghemat waktu dan upaya dalam menulis dan menjalankan batch file.

Dalam artikel ini, kami akan menjelaskan cara menggunakan batch file for loop di Windows, termasuk sintaks, contoh, dan tip yang berguna. Kami juga akan membahas beberapa variasi dari for loop, seperti for /f, for /r, dan for /d, yang dapat digunakan untuk memproses file teks, subfolder, atau direktori. Setelah membaca artikel ini, Anda akan dapat membuat batch file yang lebih efisien dan fleksibel dengan menggunakan for loop.

coding

Apa itu Batch File For Loop?

Batch file for loop adalah struktur kontrol yang memungkinkan Anda mengeksekusi perintah tertentu untuk setiap elemen dalam sebuah kumpulan data. Kumpulan data dapat berupa daftar nilai, rentang angka, atau hasil dari perintah lain.

Perintah yang dieksekusi oleh for loop disebut sebagai blok perintah, dan dapat terdiri dari satu atau lebih baris. Untuk setiap iterasi dari loop, nilai elemen saat ini akan disimpan dalam sebuah variabel, yang dapat digunakan dalam blok perintah.

Sintaks dasar dari batch file for loop adalah sebagai berikut:

FOR %%parameter IN (set) DO command

Di mana:

  • %%parameter adalah variabel yang menyimpan nilai elemen saat ini. Variabel ini harus diawali dengan dua tanda persen (%%) jika digunakan dalam batch file, atau satu tanda persen (%) jika digunakan langsung di Command Prompt.
  • (set) adalah kumpulan data yang akan diproses oleh loop. Set ini dapat berupa daftar nilai yang dipisahkan oleh spasi, koma, atau titik koma, atau rentang angka yang ditentukan dengan format (awal,langkah,akhir). Set ini juga dapat berupa hasil dari perintah lain yang diapit oleh tanda kutip tunggal (‘), seperti ‘dir /b’ atau ‘type file.txt.
  • command adalah perintah yang akan dieksekusi untuk setiap elemen dalam set. Perintah ini dapat berupa perintah internal atau eksternal, file batch, atau daftar perintah. Variabel %%parameter dapat digunakan dalam perintah ini untuk merujuk ke nilai elemen saat ini. Jika perintah terdiri dari lebih dari satu baris, maka harus dikelilingi oleh tanda kurung (( dan )).

Contoh:

FOR %%A IN (1 2 3) DO ECHO %%A

Perintah di atas akan menampilkan angka 1, 2, dan 3 secara berurutan di layar.

FOR %%B IN (1,2,10) DO ECHO %%B

Perintah di atas akan menampilkan angka 1, 3, 5, 7, dan 9 secara berurutan di layar. Ini karena rentang angka (1,2,10) berarti mulai dari 1, bertambah 2 setiap langkahnya, sampai maksimal 10.

FOR %%C IN ('dir /b *.txt') DO TYPE %%C

Perintah di atas akan menampilkan isi dari semua file teks yang ada di direktori saat ini.

Bagaimana Cara Menggunakan Batch File For Loop untuk Memproses File dan Folder?

Salah satu kegunaan umum dari batch file for loop adalah untuk memproses file dan folder secara massal. Misalnya, Anda mungkin ingin mengubah nama, menghapus, atau memindahkan sejumlah file atau folder dengan pola tertentu. Untuk melakukan hal ini, Anda dapat menggunakan beberapa opsi tambahan yang tersedia untuk for loop, seperti:

  • /F untuk memproses file teks atau hasil dari perintah lain.
  • /R untuk memproses subfolder secara rekursif.
  • /D untuk memproses direktori saja.

Berikut adalah sintaks dari batch file for loop dengan opsi tambahan ini:

FOR /F ["options"] %%parameter IN (set) DO command

Di mana:

  • [“options”] adalah opsi tambahan yang dapat digunakan untuk mengontrol cara for loop memproses file teks atau hasil perintah. Beberapa opsi yang umum digunakan adalah:
    • skip=n untuk melewati n baris pertama dari file teks atau hasil perintah.
    • delims=xyz untuk menentukan karakter pemisah (delimiter) antara kolom dalam file teks atau hasil perintah. Karakter default adalah spasi dan tab.
    • tokens=x,y,m-n untuk menentukan kolom mana yang akan disimpan dalam variabel. Kolom pertama adalah x, kolom kedua adalah y, dan seterusnya. Jika ada lebih dari satu variabel, maka harus diurutkan sesuai abjad, misalnya %%A %%B %%C. Jika ada tanda bintang (*) setelah daftar kolom, maka semua kolom sisanya akan disimpan dalam variabel terakhir.
    • usebackq untuk menggunakan tanda kutip ganda (“) sebagai pembatas set jika set berupa nama file atau folder yang mengandung spasi, atau tanda kutip tunggal (‘) jika set berupa perintah.
FOR /R [[drive:]path] %%parameter IN (set) DO command

Di mana:

  • [[drive:]path] adalah direktori awal yang akan diproses oleh loop. Jika tidak ditentukan, maka direktori saat ini akan digunakan.
  • (set) adalah kumpulan file yang akan diproses oleh loop. Set ini harus berupa pola pencocokan file (file globbing), seperti *.txt atau ?.bat. Jika set ini kosong, maka semua file akan diproses.
FOR /D %%parameter IN (set) DO command

Di mana:

Contoh:

FOR /F "skip=1 delims=," %%A IN (data.csv) DO ECHO %%A

Perintah di atas akan melewati baris pertama dari file data.csv, yang biasanya berisi judul kolom, dan menampilkan nilai kolom pertama dari setiap baris selanjutnya, yang dipisahkan oleh koma.

FOR /F "tokens=1,2* usebackq" %%A IN ("file name.txt") DO ECHO %%A %%B %%C

Perintah di atas akan memproses file teks yang namanya mengandung spasi, dan menampilkan nilai kolom pertama, kedua, dan sisanya dari setiap baris, yang dipisahkan oleh spasi atau tab.

FOR /R C:\Users\ %%D IN (*.jpg) DO COPY %%D D:\Backup\

Perintah di atas akan mencari semua file dengan ekstensi .jpg di direktori C:Users dan subdirektorinya, dan menyalinnya ke direktori D:Backup.

FOR /D %%E IN (*) DO RMDIR /S /Q %%E

Perintah di atas akan menghapus semua direktori dan isinya di direktori saat ini.

Artikel Terbaru