Panggil file batch yang memanggil file batch lain menggunakan direktori yang kedua sebagai direktori kerja

1

Dengan asumsi saya memiliki file batch (start.bat) di C: \ dengan baris ini:

start cmd /k call dir1\dir2\1.bat
start cmd /k call dir3\dir4\2.bat
start cmd /k call dir5\dir6\3.bat

Di dalam 1,2,3.batch yang saya miliki

call mvn clean install

jadi saya perlu 1,2,3.batch untuk berjalan di direktori di mana mereka berada. Solusi lain yang saya temukan digunakan pushd atau ~dp0 dan saya tidak bisa menjalankannya dengan start.bat karena ketika dijalankan mereka masih mengeksekusi di C: \ (direktori start.bat saat ini)

Strukturnya seperti ini:

C:\
    dir1
        dir2
    dir3
        dir4
    dir5
        dir6
sceiler
sumber

Jawaban:

1

Tunjukkan dalam perintah mulai apa folder aktif saat ini untuk proses yang dimulai

start "[started in dir2]" /d "dir1\dir2" cmd /k 1.bat
MC ND
sumber
1
itu bekerja terima kasih. pertanyaan setengah-PL kecil. dapat file batch lain mulai start.bat dan menunggu sampai selesai? seperti startstart.bat (start / wait call start.bat)? Saya memiliki banyak file batch berbeda yang harus dijalankan secara berurutan, menunggu yang sebelumnya selesai
sceiler
1
@sceiler, jika satu file batch langsung memanggil file batch lain, aliran eksekusi ditransfer ke yang dipanggil dan tidak kembali ke pemanggil. Menggunakan call child.bat jadi ketika file yang dipanggil berakhir, eksekusi berlanjut di pemanggil.
MC ND