Bagaimana cara memanggil skrip batch lain dari dalam skrip batch?
Saya ingin itu dieksekusi dalam sebuah ifpernyataan.
Jawaban:
Gunakan CALLseperti dalam
CALL nameOfOtherFile.bat
Ini akan memblokir (menghentikan sementara) eksekusi dari file batch saat ini, dan itu akan menunggu sampai CALLed selesai.
Jika Anda tidak ingin memblokir, gunakan STARTsaja.
Dapatkan detailnya dengan menggunakan CALL /?atau START /?dari prompt cmd.
Anda bisa menjalankan skrip batch dengan nama, seolah-olah Anda menjalankan pada baris perintah.
Jadi, misalkan Anda memiliki file bar.batyang mengatakan echo This is bar.bat!dan ingin memanggilnya dari file foo.bat, Anda dapat menulis ini di foo.bat:
if "%1"=="blah" bar
Jalankan foo blahdari baris perintah, dan Anda akan melihat:
C:\>foo blah
C:\>if "blah" == "blah" bar
C:\>echo This is bar.bat!
This is bar.bat!
Namun berhati-hatilah : Saat Anda menjalankan skrip batch dari skrip batch lain, skrip batch asli akan berhenti berjalan. Jika Anda ingin menjalankan skrip batch sekunder dan kemudian kembali ke skrip batch sebelumnya, Anda harus menggunakan callperintah. Sebagai contoh:
if "%1"=="blah" call bar
echo That's all for foo.bat!
Jika Anda menjalankannya foo blah, Anda akan melihat:
C:\>foo blah
C:\>if "blah" == "blah" call bar
C:\>echo This is bar.bat!
This is bar.bat!
C:\>echo That's all for foo.bat!
That's all for foo.bat!
Anda harus menggunakan CALL
CALL batch.bat
Jika Anda ingin membuka file batch di jendela lain, gunakan start. Dengan cara ini, pada dasarnya Anda dapat menjalankan dua skrip pada saat yang bersamaan. Dengan kata lain, Anda tidak perlu menunggu skrip yang baru saja Anda panggil selesai. Semua contoh di bawah berfungsi:
start batch.bat
start call batch.bat
start cmd /c batch.bat
Jika Anda ingin menunggu skrip selesai, coba start /w call batch.bat, tetapi batch.bat harus diakhiri dengan exit.
dayStart.bat
start "startOfficialSoftwares" /min cmd /k call startOfficialSoftwares.bat
start "initCodingEnvironment" /min cmd /k call initCodingEnvironment.bat
start "updateProjectSource" /min cmd /k call updateProjectSource.bat
start "runCoffeeMachine" /min cmd /k call runCoffeeMachine.bat
release.bat
call updateDevelVersion.bat
call mergeDevelIntoMaster.bat
call publishProject.bat
huh, saya tidak tahu mengapa, tetapi panggilan tidak berhasil, triknya
call script.battidak kembali ke konsol asli.
cmd /k script.batkembali ke konsol aslinya.
call, ia akan melanjutkan eksekusinya bahkan dengan kesalahan dalam skrip yang disebut.