Skrip Batch - Fungsi

Hai sana, para pemrogram yang sedang belajar! Hari ini, kita akan melihat dunia yang menarik dari fungsi dalam skrip Batch. Seperti guru komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk mengantar Anda dalam perjalanan ini. Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita mulai!

Batch Script - Functions

Apa Itu Fungsi?

Sebelum kita masuk ke hal yang mendalam, mari kita mengerti apa itu fungsi. Berpikir tentang fungsi sebagai pembantu kecil dalam skrip Anda. Mereka seperti program mini dalam program utama Anda yang melakukan tugas-tugas khusus. Seperti halnya Anda meminta teman untuk membantu Anda melakukan tugas tertentu, Anda dapat memanggil fungsi ini untuk melakukan pekerjaan khusus dalam skrip Anda.

Definisi Fungsi

Sekarang, mari kita belajar bagaimana membuat teman kecil ini. Dalam skrip Batch, kita mendefinisikan fungsi menggunakan label. Ini adalah struktur dasar:

:functionName
REM Kode fungsi Anda disini
REM ...
REM ...
goto :eof

mari kitauraikan ini:

  1. :functionName adalah label yang menandai awal fungsi Anda.
  2. Baris-baris setelah label berisi kode sebenarnya dari fungsi Anda.
  3. goto :eof memberitahu skrip untuk melompat ke akhir file, secara efektif mengakhiri fungsi.

Ini adalah contoh sederhana:

:sayHello
echo Hello, World!
goto :eof

Fungsi ini, ketika dipanggil, hanya akan mencetak "Hello, World!" ke konsol.

Memanggil Fungsi

Sekarang kita telah membuat fungsi, bagaimana kita menggunakannya? Kita menggunakan perintah call. Ini adalah cara:

@echo off
call :sayHello
pause

:sayHello
echo Hello, World!
goto :eof

Ketika Anda menjalankan skrip ini, ia akan mengeluarkan:

Hello, World!
Tekan tombol apa saja untuk melanjutkan . . .

Perintah call memberitahu skrip untuk menjalankan fungsi sayHello.

Fungsi Dengan Parameter

Fungsi menjadi lebih kuat saat kita dapat memberikan informasi kepadanya. Informasi ini disebut parameter. Mari kita modifikasi fungsi sayHello untuk menyapa orang tertentu:

@echo off
call :sayHello John
pause

:sayHello
echo Hello, %~1!
goto :eof

Output:

Hello, John!
Tekan tombol apa saja untuk melanjutkan . . .

Dalam contoh ini, %~1 mewakili parameter pertama yang diberikan ke fungsi. Ketika kita memanggil sayHello John, "John" menjadi parameter pertama.

Fungsi Dengan Banyak Parameter

Kita dapat memberikan banyak parameter ke fungsi. Mari kita buat fungsi yang menambahkan dua bilangan:

@echo off
call :addNumbers 5 3
pause

:addNumbers
set /a result=%~1 + %~2
echo The sum of %~1 and %~2 is %result%
goto :eof

Output:

The sum of 5 and 3 is 8
Tekan tombol apa saja untuk melanjutkan . . .

Di sini, %~1 mewakili parameter pertama (5), dan %~2 mewakili parameter kedua (3).

Mengembalikan Nilai Dari Fungsi

Dalam skrip Batch, fungsi tidak mengembalikan nilai dalam arti tradisional. Namun, kita dapat menggunakan variabel lingkungan untuk mensimulasikan perilaku ini:

@echo off
call :multiply 6 7
echo The result is %result%
pause

:multiply
set /a result=%~1 * %~2
goto :eof

Output:

The result is 42
Tekan tombol apa saja untuk melanjutkan . . .

Dalam contoh ini, fungsi multiply mengatur variabel result, yang kita dapat gunakan dalam skrip utama.

Variabel Lokal Dalam Fungsi

Ketika bekerja dengan fungsi, seringkali baik untuk menggunakan variabel lokal agar tidak mengganggu variabel di skrip utama. Kita dapat melakukan ini menggunakan perintah setlocal dan endlocal:

@echo off
set globalVar=I'm global
call :localVarDemo
echo After function call: %globalVar%
pause

:localVarDemo
setlocal
set globalVar=I'm local
echo Inside function: %globalVar%
endlocal
goto :eof

Output:

Inside function: I'm local
After function call: I'm global
Tekan tombol apa saja untuk melanjutkan . . .

Perintah setlocal membuat lingkungan baru untuk fungsi, dan endlocal menghapusnya saat fungsi berakhir, menjaga nilai asli globalVar.

Pustaka Fungsi

Saat skrip Anda menjadi lebih kompleks, Anda mungkin menemukan bahwa Anda menggunaan fungsi yang sama dalam banyak skrip. Daripada menyalin dan menempelkan fungsi ini ke setiap skrip, Anda dapat membuat pustaka fungsi:

  1. Buat file baru, mari kita sebutnya myFunctions.bat
  2. Tempatkan fungsi yang umum digunakan Anda di dalam file ini
  3. Di dalam skrip utama Anda, gunakan perintah call untuk menjalankan file ini sebelum menggunakan fungsi-fungsi ini

myFunctions.bat:

:sayHello
echo Hello, %~1!
goto :eof

:addNumbers
set /a result=%~1 + %~2
goto :eof

mainScript.bat:

@echo off
call myFunctions.bat

call :sayHello World
call :addNumbers 10 20
echo The sum is %result%
pause

Pendekatan ini membantu mengorganisir dan memakai kode Anda kembali.

Metode Umum Fungsi

Berikut adalah tabel metode umum yang berkaitan dengan fungsi dalam skrip Batch:

Metode Deskripsi
call Memanggil fungsi
goto :eof Mengakhiri fungsi
%~1, %~2, dll. Mengakses parameter fungsi
setlocal Membuat lingkungan variabel lokal
endlocal Mengakhiri lingkungan lokal

Ingat, latihan membuat sempurna! Jangan khawatir untuk mencoba konsep ini. Buat fungsi Anda sendiri, mainkan dengan parameter, dan lihat apa yang Anda bisa bangun. Sebelum Anda tahu, Anda akan menulis skrip Batch kompleks dengan mudah!

Selamat coding, para pemrogram masa depan!

Credits: Image by storyset