Diğer tüm cevaplar doğrudur: çağrıyı kullanın. Örneğin:
call "msbuild.bat"
Tarih
Eski DOS sürümlerinde, toplu iş dosyalarını yinelemeli olarak yürütmek mümkün değildi. Daha sonra, toplu iş dosyasını yürütmek için başka bir cmd kabuğu çağıran ve bittiğinde yürütme cmd kabuğuna yürütmeyi döndüren çağrı komutu tanıtıldı.
Açıkçası daha sonraki versiyonlarda artık başka bir cmd kabuğu gerekli değildi.
İlk günlerde birçok toplu iş dosyası, bir toplu iş dosyasını çağırmanın çağrılan toplu iş dosyasına dönmeyeceğine bağlıydı. Ek sözdizimi olmadan bu davranışı değiştirmek, toplu menü sistemleri (menü yapıları için toplu iş dosyalarını kullanma) gibi birçok sistemi bozacaktır.
Microsoft'ta olduğu gibi birçok durumda olduğu gibi, bu davranışın nedeni geriye dönük uyumluluktur.
İpuçları
Toplu iş dosyalarınızın adlarında boşluk varsa, adın çevresinde tırnak işareti kullanın:
call "unit tests.bat"
Bu arada: toplu iş dosyalarının tüm adlarına sahip değilseniz, bunu yapmak için de kullanabilirsiniz (toplu dosya çağrılarının doğru sırasını garanti etmez; dosya sisteminin sırasını izler):
FOR %x IN (*.bat) DO call "%x"
Bir çağrıdan sonra hata düzeylerine de tepki verebilirsiniz. kullanın:
exit /B 1 # Or any other integer value in 0..255
bir hata seviyesi geri vermek. 0 doğru yürütmeyi belirtir. Çağıran toplu iş dosyasında aşağıdakileri kullanarak yanıt verebilirsiniz:
if errorlevel neq 0 <batch command>
if errorlevel 1
Tüm hata düzeylerini 1 ve üstünü yakalamak için NT4 / 2000 / XP'den daha eski bir Windows'unuz varsa kullanın .
Bir toplu iş dosyasının akışını denetlemek için goto :-( var
if errorlevel 2 goto label2
if errorlevel 1 goto label1
...
:label1
...
:label2
...
Diğerlerinin belirttiği gibi: toplu iş dosyalarını değiştirmek için derleme sistemlerine göz atın.