CALL কমান্ডটি Batch Script-এ একটি সাবরুটিন বা ফাংশন কল করতে ব্যবহৃত হয়। এটি আপনার স্ক্রিপ্টের মধ্যে একাধিক কোড ব্লককে মডুলারভাবে পৃথক করে পরিচালনা করতে সাহায্য করে। সাবরুটিনে থাকা কোড একাধিক স্থানে পুনরায় ব্যবহার করা যায়, যার ফলে স্ক্রিপ্টটি আরও পরিষ্কার এবং রিইউজেবল হয়।
CALL কমান্ডের ব্যাখ্যা
CALL কমান্ডের সাহায্যে আপনি একটি ব্যাচ ফাইলের মধ্যে অন্য একটি সাবরুটিন কল করতে পারেন, যা একটি লেবেল দ্বারা চিহ্নিত থাকে। একবার সাবরুটিনে প্রবেশ করলে, স্ক্রিপ্টটি সেখানে সংজ্ঞায়িত কোডগুলি চালাবে, এবং পরে CALL কমান্ডটি যেখানে কল করা হয়েছে, সেখানে ফিরে আসবে।
ব্যবহার:
CALL :SubroutineName
এখানে, :SubroutineName হল সেই লেবেল যেখানে সাবরুটিনের কোড সংরক্ষিত থাকে। সাবরুটিনের শেষে একটি GOTO কমান্ড দিয়ে সাবরুটিন থেকে ফিরে আসা হয়।
উদাহরণ: CALL কমান্ড ব্যবহার
ধরা যাক, আপনার একটি ব্যাচ স্ক্রিপ্ট রয়েছে, যেখানে একটি সাবরুটিন আছে যা দুটি সংখ্যা যোগ করবে এবং ফলাফল প্রদর্শন করবে। আপনি CALL কমান্ড ব্যবহার করে সেটি কল করতে পারেন।
@echo off
echo Calling Subroutine...
CALL :AddNumbers 5 3
echo Back to Main Script
pause
exit
:AddNumbers
echo Adding %1 and %2
set /a result=%1+%2
echo The result is %result%
goto :eof
ব্যাখ্যা:
- CALL :AddNumbers 5 3
এখানে,CALLকমান্ডটি:AddNumbersলেবেলকে কল করছে এবং5ও3নামক দুইটি আর্গুমেন্ট পাস করছে। - :AddNumbers
এটি একটি সাবরুটিন যা দুইটি আর্গুমেন্ট গ্রহণ করে (%1এবং%2), তাদের যোগফল বের করে এবং ফলাফল প্রদর্শন করে। এখানে,%1হচ্ছে5এবং%2হচ্ছে3। শেষে,goto :eofকমান্ডের মাধ্যমে সাবরুটিনের কার্যক্রম শেষ হবে এবং স্ক্রিপ্টটি মূল জায়গায় ফিরে যাবে। - goto :eof
:eof(End Of File) লেবেলটি স্ক্রিপ্টের শেষের দিকে উপস্থিত থাকে, যা সাবরুটিনের শেষ হতে নির্দেশ করে। এটি CALL কমান্ডের পরিপূরক হিসেবে কাজ করে, যাতে সাবরুটিনটি শেষ হলে স্ক্রিপ্টটি আগের অবস্থানে ফিরে যেতে পারে।
Parameter Passing (পারামিটার পাসিং)
একটি গুরুত্বপূর্ণ বিষয় হল, আপনি CALL কমান্ডের মাধ্যমে সাবরুটিনে এক বা একাধিক পারামিটার পাস করতে পারেন। এসব পারামিটার সাবরুটিনে %1, %2, %3 ইত্যাদি দিয়ে অ্যাক্সেস করা হয়, যেখানে %1 প্রথম প্যারামিটার, %2 দ্বিতীয় প্যারামিটার, এবং এরকমভাবে চলতে থাকে।
উদাহরণ:
@echo off
CALL :DisplayMessage "Hello" "World"
pause
exit
:DisplayMessage
echo %1 %2
goto :eof
এখানে, CALL :DisplayMessage "Hello" "World" কমান্ডটি দুটি প্যারামিটার "Hello" এবং "World" সাবরুটিনে পাস করবে। সাবরুটিনটি echo %1 %2 দিয়ে এই দুটি প্যারামিটার প্রিন্ট করবে, এবং আউটপুট হবে:
Hello World
সাবরুটিনের জন্য রিটার্ন ভ্যালু (Return Values)
Batch Script সরাসরি রিটার্ন ভ্যালু সহ সাবরুটিন থেকে ফিরে আসার ব্যবস্থা করে না। তবে, আপনি সাবরুটিন থেকে কিছু ফলাফল ফেরত পেতে পারেন একটি ভেরিয়েবলের মাধ্যমে। উদাহরণস্বরূপ:
@echo off
CALL :Multiply 5 10
echo The product is %result%
pause
exit
:Multiply
set /a result=%1*%2
goto :eof
এখানে, Multiply সাবরুটিনটি দুটি সংখ্যার গুণফল গণনা করবে এবং সেই ফলাফলটি %result% ভেরিয়েবলে সংরক্ষণ করবে। CALL কমান্ডের মাধ্যমে সাবরুটিনটি কল করার পর, result ভেরিয়েবলটি মূল স্ক্রিপ্টে অ্যাক্সেস করা যাবে।
সারাংশ
CALL কমান্ডটি Batch Script-এ একটি গুরুত্বপূর্ণ কৌশল যা আপনাকে কোডকে মডুলারভাবে ভাগ করতে এবং একাধিক জায়গায় পুনরায় ব্যবহার করতে সাহায্য করে। এটি সাবরুটিন কল করতে ব্যবহৃত হয় এবং প্যারামিটার পাসিংয়ের মাধ্যমে আরও ডাইনামিক স্ক্রিপ্ট তৈরি করতে সহায়তা করে। GOTO :eof কমান্ডের মাধ্যমে সাবরুটিনটি শেষ হলে স্ক্রিপ্টটি আগের অবস্থানে ফিরে আসে। CALL কমান্ড Batch Script-কে আরও গঠনমূলক ও রিইউজেবল করে তোলে।
Read more