Baris perintah - file batch yang memanggil file batch lain

13

Saya memiliki file batch yang memanggil file batch lain yang ada di direktori PATH (pada dasarnya memanggil executable dengan switch tambahan.)

: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.

Di foo.bat:

foo.exe -t -s %1

bar.bat menjalankan perintah pertama tetapi langsung keluar (yaitu hanya bekerja pada file1.txt ).

Bagaimana saya bisa membuat batch file ini untuk memohon batch file lainnya lebih dari sekali?

Dani
sumber

Jawaban:

14

Gunakan kata kunci CALL:

call foo.bat file1.txt
call foo.bat file2.txt
percikan
sumber
1
<disalin dari jawaban Duncan Smart, hanya untuk tetap bersama> Selain jawaban @ splattne, gunakan exit / b dalam file batch yang ditelepon jika Anda harus kembali lebih awal.
Brad Bruce
1
Anda juga dapat menggunakannya goto :eofuntuk kembali lebih awal. exit /bbiasanya hanya diperlukan jika Anda memerlukan kode kembali.
Joey
Saya tidak mengapa, tetapi saya berjuang untuk mendapatkan ini untuk bekerja, saya telah mencoba keduanya exit /bdan goto: eof. Apakah boleh menambahkan output dari bat yang dipanggil? call foo.bat > myfile
SSH
4

Selain jawaban @ splattne, gunakan exit /bdalam CALLfile batch ed jika Anda harus kembali lebih awal.

Duncan Smart
sumber
2

Opsi lain (untuk kompatibilitas dengan DOS sebelum versi 3.3 :-)) adalah memanggil proses perintah dengan opsi child (/ c) dan nama file batch lain untuk diproses. Itu juga akan melakukan panggilan alih-alih rantai, dan bahkan akan bekerja pada mesin yang benar-benar kuno (kalau-kalau ada orang berlari melintasi ini dan peduli). :-)

Brian Knoblauch
sumber
0

@echo mati

echo WbLegalReport.cmd

saya:

cd I: \ CFS \ Batch \ jarDir

gema% CD%

WbLegalReport.cmd

gema% CD%

gema WatchResrAddDeleted.cmd

gema% CD%

WatchRestrAddDeleted.cmd

gema% CD%

Apa yang saya coba lakukan di sini adalah memanggil dua file batch ini secara berurutan.

Tidak dapat melakukannya.

tolonglah.

Sebenarnya itu gagal pada skrip anak, Karena kontrol tidak kembali ke skrip utama


sumber
0

Sanket, jangan panggil file batch secara langsung. Gunakan perintah "PANGGILAN". Lihat contoh splattne .

pepoluan
sumber