File batch windows ( called.bat
atau called.cmd
) dapat dipanggil dari file batch lain ( caller.bat
atau caller.cmd
) atau prompt cmd.exe interaktif dengan beberapa cara:
- panggilan langsung:
called.bat
- menggunakan perintah panggilan:
call called.bat
- menggunakan perintah cmd:
cmd /c called.bat
- menggunakan perintah start:
start called.bat
Saya cukup kesulitan untuk membedakan penggunaan yang dimaksudkan berdasarkan teks bantuan mereka: kapan harus menggunakan yang mana? misalnya mengapa saya mungkin menggunakan perintah 'panggil' daripada panggilan langsung. Apa bedanya?
Saya tertarik pada beberapa laporan ringkasan yang menganalisis semua 4 kemungkinan (dan lainnya jika ada yang hilang) dari berbagai sudut pandang: kasus penggunaan yang disarankan yang dirancang agar sesuai, proses pemijahan, konteks eksekusi, lingkungan, pemrosesan kode pengembalian.
Catatan: Saya menggunakan Windows XP SP3.
sumber
start "" [options] command
Satu hal yang tidak jelas dari komentar di sini: Ketika Anda memanggil satu file batch dari file lain dengan hanya menggunakan namanya (Kasus # 1 dalam pertanyaan asli), eksekusi berhenti dari file batch yang dipanggil. Misalnya, di baris ini:
called.bat echo Hello
Baris 'echo Hello' (dan apa pun yang mengikutinya) tidak akan dipanggil. Jika Anda menggunakan kata kunci 'panggilan', eksekusi dilanjutkan setelah panggilan. Jadi dalam kasus ini:
call called.bat echo Hello
Baris 'echo Hello' akan dipanggil.
Selain itu, semua variabel yang disetel dalam file bernama.bat akan diteruskan kembali ke proses pemanggilan juga.
Bayangkan file 'dipanggil.bat' yang memiliki baris ini:
set MYVAR=hello
Kemudian,% MYVAR% akan tersedia untuk file batch pemanggil jika digunakan:
Tapi, itu tidak akan berhasil
sumber