আমি কীভাবে ব্যাচের স্ক্রিপ্ট থেকে ব্যাচ স্ক্রিপ্ট চালাব?


99

আমি কীভাবে ব্যাচের স্ক্রিপ্ট থেকে অন্য ব্যাচের স্ক্রিপ্ট কল করব?

আমি এটি একটি ifবিবৃতিতে কার্যকর করতে চাই ।

উত্তর:


226

CALLহিসাবে হিসাবে ব্যবহার করুন

CALL nameOfOtherFile.bat

এটি বর্তমান ব্যাচ ফাইলটির সম্পাদনকে (বিরতি) আটকাবে এবং CALLএডটি সম্পূর্ণ না হওয়া পর্যন্ত এটি অপেক্ষা করবে ।

আপনি যদি এটিটি ব্লক করতে না চান তবে STARTপরিবর্তে ব্যবহার করুন।

সেন্টিমিডি প্রম্পট ব্যবহার করে CALL /?বা ব্যবহার করে নাইট্টি-গরিটি বিশদটি পান START /?


23

আপনি নাম অনুসারে ব্যাচ স্ক্রিপ্টটি শুরু করতে পারেন, যেন আপনি কমান্ড লাইনে চলছে।

সুতরাং, ধরুন আপনার কাছে এমন একটি ফাইল রয়েছে 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!


2

তুমি ব্যবহার করতে পার

call script.bat

অথবা শুধুই

script.bat

4
যদি আপনি সরাসরি আপনার স্ক্রিপ্টের মধ্যে অন্য কোনও স্ক্রিপ্টকে কল করেন, যদি কথিত স্ক্রিপ্টের কোনও কমান্ড একটি শূন্য-অমূল্য (ত্রুটি) প্রদান করে, কলি স্ক্রিপ্টটি কার্যকর করতে থামবে, যেখানে ব্যবহার করা হচ্ছে call, এটি ত্রুটিযুক্ত থাকলেও এটি কার্যকর করা চালিয়ে যাবে বলা স্ক্রিপ্টে।
ব্রুনো ফিঙ্গার

1

এখানে উদাহরণ:

আপনার a.bat রয়েছে:

@echo off
if exist b.bat goto RUNB
goto END
:RUNB
b.bat
:END

এবং বি.বাটকে শর্তসাপেক্ষে বলা হয়েছে a.bat থেকে:

@echo off 
echo "This is b.bat"

1

আপনি যদি অন্য উইন্ডোতে ব্যাচ ফাইলটি খুলতে চান তবে ব্যবহার করুন start। এইভাবে, আপনি মূলত একই সময়ে দুটি স্ক্রিপ্ট চালাতে পারেন। অন্য কথায়, আপনি যে স্ক্রিপ্টটি শেষ করার জন্য ডেকেছিলেন তার জন্য অপেক্ষা করতে হবে না। কাজের নীচে সমস্ত উদাহরণ:

start batch.bat
start call batch.bat
start cmd /c batch.bat

আপনি যদি স্ক্রিপ্টটি শেষ হওয়ার জন্য অপেক্ষা করতে চান start /w call batch.batতবে চেষ্টা করুন , কিন্তু ব্যাচ.ব্যাটটি শেষ হতে হবে exit


এই স্ক্রিপ্টগুলির প্রতিটি থেকে সমস্ত স্ক্রিপ্টগুলি মূল স্ক্রিপ্টের আউটপুটগুলিতে ফিরে যাওয়ার কোনও উপায় আছে কি?
বন্দুকধারক

0

ন্যূনতম অবস্থায় পৃথক কমান্ড উইন্ডোতে সমান্তরালভাবে চালান

ডেস্টার্ট.বাট

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

-3

হু, আমি জানি না কেন, কিন্তু কলটি করল না ক্রিটটি
call script.batআসল কনসোলে ফিরে আসেনি।
cmd /k script.batআসল কনসোলে ফিরে এসেছিল।


4
আপনার প্রশ্ন সম্পাদনা করার বিষয়টি আরও আনুষ্ঠানিকভাবে ব্যাখ্যা করার জন্য যা কাজ করে না এবং কী করে না, সহ নন-ওয়ার্কিং কোড এবং ওয়ার্কিং কোড সহ
উইন্ডারম্যান 18
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.