আমি কীভাবে ব্যাচের স্ক্রিপ্ট থেকে অন্য ব্যাচের স্ক্রিপ্ট কল করব?
আমি এটি একটি if
বিবৃতিতে কার্যকর করতে চাই ।
উত্তর:
CALL
হিসাবে হিসাবে ব্যবহার করুন
CALL nameOfOtherFile.bat
এটি বর্তমান ব্যাচ ফাইলটির সম্পাদনকে (বিরতি) আটকাবে এবং CALL
এডটি সম্পূর্ণ না হওয়া পর্যন্ত এটি অপেক্ষা করবে ।
আপনি যদি এটিটি ব্লক করতে না চান তবে START
পরিবর্তে ব্যবহার করুন।
সেন্টিমিডি প্রম্পট ব্যবহার করে CALL /?
বা ব্যবহার করে নাইট্টি-গরিটি বিশদটি পান START /?
।
আপনি নাম অনুসারে ব্যাচ স্ক্রিপ্টটি শুরু করতে পারেন, যেন আপনি কমান্ড লাইনে চলছে।
সুতরাং, ধরুন আপনার কাছে এমন একটি ফাইল রয়েছে bar.bat
যা বলছে echo This is bar.bat!
এবং আপনি এটি কোনও ফাইল থেকে কল করতে চান foo.bat
, আপনি এটি এখানে লিখতে পারেন foo.bat
:
if "%1"=="blah" bar
foo blah
কমান্ড লাইন থেকে চালান , এবং আপনি দেখতে পাবেন:
C:\>foo blah
C:\>if "blah" == "blah" bar
C:\>echo This is bar.bat!
This is bar.bat!
তবে সাবধান থাকুন : আপনি যখন অন্য ব্যাচের স্ক্রিপ্ট থেকে কোনও ব্যাচ স্ক্রিপ্ট শুরু করবেন, মূল ব্যাচ স্ক্রিপ্টটি চলমান বন্ধ হয়ে যাবে। আপনি যদি দ্বিতীয় ব্যাচের স্ক্রিপ্টটি চালাতে চান এবং তারপরে পূর্ববর্তী ব্যাচের স্ক্রিপ্টে ফিরে আসতে চান, আপনাকে call
কমান্ডটি ব্যবহার করতে হবে । উদাহরণ স্বরূপ:
if "%1"=="blah" call bar
echo That's all for foo.bat!
আপনি যদি এটি চালায় তবে আপনি foo blah
দেখতে পাবেন:
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 batch.bat
আপনি যদি অন্য উইন্ডোতে ব্যাচ ফাইলটি খুলতে চান তবে ব্যবহার করুন start
। এইভাবে, আপনি মূলত একই সময়ে দুটি স্ক্রিপ্ট চালাতে পারেন। অন্য কথায়, আপনি যে স্ক্রিপ্টটি শেষ করার জন্য ডেকেছিলেন তার জন্য অপেক্ষা করতে হবে না। কাজের নীচে সমস্ত উদাহরণ:
start batch.bat
start call batch.bat
start cmd /c batch.bat
আপনি যদি স্ক্রিপ্টটি শেষ হওয়ার জন্য অপেক্ষা করতে চান start /w call batch.bat
তবে চেষ্টা করুন , কিন্তু ব্যাচ.ব্যাটটি শেষ হতে হবে exit
।
ডেস্টার্ট.বাট
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
রিলিজ.বাট
call updateDevelVersion.bat
call mergeDevelIntoMaster.bat
call publishProject.bat
হু, আমি জানি না কেন, কিন্তু কলটি করল না ক্রিটটি
call script.bat
আসল কনসোলে ফিরে আসেনি।
cmd /k script.bat
আসল কনসোলে ফিরে এসেছিল।
call
, এটি ত্রুটিযুক্ত থাকলেও এটি কার্যকর করা চালিয়ে যাবে বলা স্ক্রিপ্টে।