Bagikan melalui


panggil

Memanggil satu program batch dari yang lain tanpa menghentikan program batch induk. Perintah panggilan menerima label sebagai target panggilan.

Catatan

Panggilan tidak berpengaruh pada prompt perintah saat digunakan di luar skrip atau file batch.

Sintaks

call [drive:][path]<filename> [<batchparameters>]] 
call [:<label> [<arguments>]]

Parameter

Parameter Deskripsi
[<drive>:][<path>]<filename> Menentukan lokasi dan nama program batch yang ingin Anda panggil. Parameter <filename> diperlukan, dan harus memiliki ekstensi .bat atau .cmd.
<batchparameters> Menentukan informasi baris perintah apa pun yang diperlukan oleh program batch.
:<label> Menentukan label yang ingin Anda gunakan untuk melompati kontrol program batch.
<arguments> Menentukan informasi baris perintah yang akan diteruskan ke instans baru program batch, dimulai dari :<label>.
/? Menampilkan bantuan pada prompt perintah.

Parameter batch

Referensi argumen skrip batch (%0, %1, ...) tercantum dalam tabel berikut.

%* Menggunakan nilai dalam skrip batch mengacu pada semua argumen (misalnya, %1, %2, %3...).

Anda dapat menggunakan sintaks opsional berikut sebagai pengganti parameter batch (%n):

Batch Parameter Deskripsi
%~1 Memperluas %1 dan menghapus tanda kutip di sekitarnya.
%~f1 Memperluas %1 ke jalur yang sepenuhnya memenuhi syarat.
%~d1 Perluas %1 ke huruf kandar saja.
%~p1 Perluas %1 ke jalur saja.
%~n1 Perluas %1 ke nama file saja.
%~x1 Perluas %1 ke ekstensi nama file saja.
%~s1 Memperluas %1 ke jalur yang sepenuhnya memenuhi syarat yang hanya berisi nama pendek.
%~a1 Memperluas %1 ke atribut file.
%~t1 Memperluas %1 ke tanggal dan waktu file.
%~z1 Memperluas %1 ke ukuran file.
%~$PATH:1 Mencari direktori yang tercantum dalam variabel lingkungan PATH, dan memperluas %1 ke nama direktori pertama yang sepenuhnya memenuhi syarat yang ditemukan. Jika nama variabel lingkungan tidak ditentukan atau file tidak ditemukan oleh pencarian, pengubah ini akan meluas ke string kosong.

Tabel berikut ini memperlihatkan bagaimana Anda dapat menggabungkan pengubah dengan parameter batch untuk hasil majemuk:

Parameter Batch dengan Pengubah Deskripsi
%~dp1 Memperluas %1 ke huruf kandar dan jalur saja.
%~nx1 Perluas %1 ke nama file dan ekstensi saja.
%~dp$PATH:1 Mencari direktori yang tercantum dalam variabel lingkungan PATH untuk %1, lalu memperluas ke huruf kandar dan jalur direktori pertama yang ditemukan.
%~ftza1 Memperluas %1 untuk menampilkan output yang mirip dengan perintah dir.

Dalam contoh di atas, %1 dan PATH dapat digantikan oleh nilai valid lainnya. %~ Sintaks dihentikan oleh nomor argumen yang valid. Pengubah %~ tidak dapat digunakan dengan %*.

Keterangan

  • Menggunakan parameter batch:

    Parameter batch dapat berisi informasi apa pun yang dapat Anda teruskan ke program batch, termasuk opsi baris perintah, nama file, parameter batch %0 hingga %9, dan variabel (misalnya, %baud%).

  • <label> Menggunakan parameter :

    Dengan menggunakan panggilan dengan <label> parameter , Anda membuat konteks file batch baru dan meneruskan kontrol ke pernyataan setelah label yang ditentukan. Pertama kali akhir file batch ditemui (yaitu, setelah melompat ke label), kontrol kembali ke pernyataan setelah pernyataan panggilan . Kedua kali akhir file batch ditemui, skrip batch keluar.

  • Menggunakan pipa dan simbol pengalihan:

    Jangan gunakan pipa (|) atau simbol pengalihan (< atau >) dengan panggilan.

  • Melakukan panggilan rekursif

    Anda dapat membuat program batch yang memanggil dirinya sendiri. Namun, Anda harus memberikan kondisi keluar. Jika tidak, program batch induk dan anak dapat mengulang tanpa henti.

  • Bekerja dengan ekstensi perintah

    Jika ekstensi perintah diaktifkan, panggilan akan diterima <label> sebagai target panggilan. Sintaks yang benar adalah call :<label> <arguments>.

Contoh

Untuk menjalankan program checknew.bat dari program batch lain, ketik perintah berikut dalam program batch induk:

call checknew

Jika program batch induk menerima dua parameter batch dan Anda ingin meneruskan parameter tersebut ke checknew.bat, ketik perintah berikut dalam program batch induk:

call checknew %1 %2