Skrip Batch - Fungsi

Halo sana, para pemula programmer! Hari ini, kita akan mendalamkan dunia yang menakjubkan dari fungsi dalam skrip Batch. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk mengorbitasi Anda dalam perjalanan ini. Jadi, ambil secangkir minuman favorit Anda, dan mari kita mulai!

Batch Script - Functions

Apa Itu Fungsi?

Sebelum kita melompat ke hal yang mendalam, mari kita memahami apa itu fungsi. PERTUNJUKKAN fungsi seperti little helpers dalam skrip Anda. Itu seperti mini-program dalam program utama Anda yang melakukan tugas-tugas tertentu. Seperti halnya Anda mungkin 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 membuat teman kecil ini. Dalam skrip Batch, kita mendefinisikan fungsi menggunakan label. Ini adalah struktur dasar:

:functionName
REM Kode fungsi Anda masuk di sini
REM ...
REM ...
goto :eof

mari kitauraikan ini:

  1. :functionName adalah label yang menandai awal fungsi Anda.
  2. Baris-baris setelah label berisi kode aktual fungsi Anda.
  3. goto :eof mengatakan ke 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, itu akan mengeluarkan:

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

Perintah call mengatakan ke skrip untuk menjalankan fungsi sayHello.

Fungsi Dengan Parameter

Fungsi menjadi lebih kuat saat kita dapat memberikan informasi kepadanya. Pecahan 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

Keluaran:

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 menambah dua angka:

@echo off
call :addNumbers 5 3
pause

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

Keluaran:

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

Keluaran:

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

Saat bekerja dengan fungsi, seringkali baik untuk menggunakan variabel lokal agar menghindari gangguan dengan 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

Keluaran:

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

Perintah setlocal menciptakan lingkungan baru untuk fungsi, dan endlocal menghapusnya saat fungsi berakhir, sehingga nilai globalVar asli dipertahankan.

Pustaka Fungsi

Saat skrip Anda menjadi lebih kompleks, Anda mungkin menemukan bahwa Anda menggunakan beberapa fungsi 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 sering digunakan Anda dalam file ini
  3. 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 menjaga kode Anda terorganisir dan dapat digunakan kembali.

Metode Fungsi Umum

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 takut untuk mencoba konsep ini. Buat fungsi Anda sendiri, mainkan dengan parameter, dan lihat apa yang Anda dapat bangun. Sebelum Anda menyadari, Anda akan menulis skrip Batch kompleks dengan mudah!

Selamat coding, para pemrogram masa depan!

Credits: Image by storyset