Bir toplu komut dosyası içinden başka bir toplu komut dosyasını nasıl çağırırım?
Bir ififadeyle yürütülmesini istiyorum .
Yanıtlar:
Olduğu CALLgibi kullanın
CALL nameOfOtherFile.bat
Bu, mevcut toplu iş dosyasının yürütülmesini engeller (duraklatır) ve CALLdüzenlenmiş olanın tamamlanmasını bekler .
Engellemesini istemiyorsanız, STARTbunun yerine kullanın.
Cmd komut istemini kullanarak CALL /?veya kullanarak nitty-cesur ayrıntıları alın START /?.
Komut satırında çalıştırıyormuşsunuz gibi toplu komut dosyasını ada göre çağırabilirsiniz.
Öyleyse, bar.batdiyen bir dosyanız olduğunu echo This is bar.bat!ve onu bir dosyadan çağırmak istediğinizi varsayalım foo.bat, bunu içine yazabilirsiniz foo.bat:
if "%1"=="blah" bar
foo blahKomut satırından çalıştırın ve şunu göreceksiniz:
C:\>foo blah
C:\>if "blah" == "blah" bar
C:\>echo This is bar.bat!
This is bar.bat!
Ancak dikkatli olun : Başka bir toplu komut dosyasından bir toplu komut dosyası çağırdığınızda, orijinal toplu komut dosyası çalışmayı durdurur. İkincil toplu komut dosyasını çalıştırmak ve ardından önceki toplu komut dosyasına geri dönmek isterseniz, callkomutu kullanmanız gerekir . Örneğin:
if "%1"=="blah" call bar
echo That's all for foo.bat!
Bunun foo blahüzerinde koşarsan, şunu görürsün:
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!
CALL kullanmalısınız
CALL batch.bat
Toplu iş dosyasını başka bir pencerede açmak isterseniz, kullanın start. Bu şekilde, temelde iki komut dosyasını aynı anda çalıştırabilirsiniz. Diğer bir deyişle, aradığınız komut dosyasının bitmesini beklemek zorunda değilsiniz. Aşağıdaki tüm örnekler işe yarar:
start batch.bat
start call batch.bat
start cmd /c batch.bat
Komut dosyasının bitmesini beklemek istiyorsanız, deneyin start /w call batch.bat, ancak batch.bat ile bitmelidir 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, nedenini bilmiyorum ama çağrı hile
call script.batyapmadı orijinal konsola geri dönmedi.
cmd /k script.batorijinal konsola geri döndü.
call, bir hatayla bile yürütülmesine devam eder. aranan komut dosyasında.