Forums.Likebd.Com
[Tutorial] Batch Programming টিউটোরিয়াল [পর্ব ০২] - Printable Version

+- Forums.Likebd.Com (http://forums.likebd.com)
+-- Forum: বাংলা ফোরামস (http://forums.likebd.com/forumdisplay.php?fid=228)
+--- Forum: টিপস এন্ড ট্রিকস (http://forums.likebd.com/forumdisplay.php?fid=1)
+---- Forum: কম্পিউটার (http://forums.likebd.com/forumdisplay.php?fid=3)
+---- Thread: [Tutorial] Batch Programming টিউটোরিয়াল [পর্ব ০২] (/showthread.php?tid=2858)



Batch Programming টিউটোরিয়াল [পর্ব ০২] - Muntasir - 04-20-2017

শুভ সন্ধ্যা। আমি মুনতাসির রহমান। আবার এসেছি ব্যাচ প্রোগ্রামিং এর দ্বিতীয় পর্ব নিয়ে। এই পর্ব শুরু করার আগে গত পর্ব টি পড়ে নিলে খুব ভালো হবে আপনাদের জন্যে। যারা গত পর্ব পড়েছেন তাদেরকে নিয়ে শুরু করতে যাচ্ছি ব্যাচ প্রোগ্রামিং টিউটোরিয়াল।

বাংলা ভাষায় ব্যাচ প্রোগ্রামিং এর ব্যাসিক থেকে টিউটোরিয়াল প্রায় নেই বললেই চলে। যারা শুরু করেছিলেন তারাও মাঝপথে হারিয়ে গেলেন।  [Image: sad.gif]  আপনারা সাথে থাকলে আমি চালিয়ে  যাব শেষ অবধি আশা করছি।

চলুন টিউটোরিয়ালে যাওয়া যাক।  [Image: cool.gif]


প্রশ্ন উত্তরের সাথে এগুচ্ছি তাতে বুঝতে সুবিধা হবে!



প্রশ্নঃ ব্যাচ (BATCH) প্রোগ্রামিং কি?
উত্তরঃ ব্যাচ ফাইল বা প্রোগ্রাম হচ্ছে এক ধরনের স্ক্রিপ্ট ফাইল যা DOS, OS/2 এবং Microsoft Windows এর জন্যে ব্যবহৃত হয়। একটা ব্যাচ ফাইলে বা প্রোগ্রামে অনেকগুলো কমান্ড লাইন কমান্ড থাকে যা একত্রে একটি প্লেইন টেক্সট হিসেবে নোটপ্যাডে লেখা হয়। ব্যাচ প্রোগ্রামে আপনি সরাসরি বা পরোক্ষ ভাবেও কমান্ড দিতে পারেন। একটি ব্যাচ ফাইলের এক্সটেনসন তিন ধরণের হয়ে থাকে; .bat/.cmd/.btm । এটা মূলত কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ না , এটা এক ধরনের স্ক্রিপ্টিং ল্যাঙ্গুয়েজ।
লিনাক্স অপারেটিং সিস্টেমের জন্যে ব্যাচ এর মতো শেল স্ক্রিপ্টিং ল্যঙ্গুয়েজ ব্যাবহার করা হয়।



প্রশ্নঃ ব্যাচ প্রোগ্রামিং করার জন্যে আমার কি নতুন কোনো টুলস ইন্সটল দেয়া লাগবে?
উত্তরঃ না! আমরা ব্যাচ প্রোগ্রাম লিখবো নোটপ্যাডে আর প্রোগ্রামটা দেখাবে কমান্ড প্রম্পটে। তাই এক্সট্রা কোনো টুলসের দরকার নেই আপাতত। পরে দরকার হলে বলবো।


প্রশ্নঃ ব্যাচ কীভাবে এবং কোথায় লিখবো? কীভাবে সেইভ করবো?
উত্তরঃ ব্যাচ প্রোগ্রাম লিখার জন্যে আপনার নোটপ্যাডের প্রয়োজন পড়বে। আপনি উইন্ডোজ এর স্টার্ট ম্যানু তে ক্লিক করে সার্চ বক্সে Notepad টাইপ করলেই পেয়ে যাবেন নোটপ্যাড। অথবা Run বাটনে ক্লিক করে সেখানে notepad লিখলেই নোটপ্যাড ওপেন হবে।
ব্যাচ প্রোগ্রাম লিখার পরে তা সেইভ করার সময় যখন Save As পেইজ ওপেন হবে তখন File Name এর জায়গায় আপনার নিজের ইচ্ছেমতো একটি নাম দিবেন আর সাথে .bat জুড়ে দিবেন। তারপরে নিচের দিকে আরেকটা বক্স দেখতে পাবেন যেটাতে Save As Type লেখা থাকবে। সেই বক্সে ক্লিক করে All Files(*.*) সিলেক্ট করে নিবেন। তারপরে সেইভ করবেন দেখবেন সেইভ করা ফাইল টির আইকন চেঞ্জ হয়ে গেছে।

সেইভ করার নিয়ম তো জানলেন। এখন কীভাবে শেখা শুরু করবেন তা জানার আগে কয়েকটা অতি গুরুত্বপূর্ন জিনিস জেনে নিতে হবে।

প্রশ্নঃ ব্যাচ প্রোগ্রামিং বা ডস প্রোগ্রাম এ মোড কয়টা?
উত্তরঃ ব্যাচ প্রোগ্রামিং এ দুটো মোড। যথাঃ
    Interactive Mode: এই মোডে যখন ইউজার কোনো কমান্ড দেয় তখন এটা ইউজার এর ইনপুটের জন্যে অপেক্ষা করে। যতক্ষণ পর্যন্ত ইউজার কোনো ইনপুট না দিবে ততক্ষণ পর্যন্ত এটা ইউজার এর ইনপুটের অপেক্ষা করবে। যেমনঃ
    "del" কমান্ড টি দ্বারা কোনো ফাইল বা ফোল্ডার ডিলিট করা হয়। এখন আমি যদি "a" ফোল্ডারের মধ্যে থাকা একটা ফাইল ডিলিট করতে চাই তবে এটা নিচের মতো করে আমার ইনপুটের জন্যে অপেক্ষা করবে।
 
Code:
 C:\>del a
   C:\a\*, Are you sure (Y/N)?
   y

    Silent Mode or Batch Mode: এই মোডে ইউজার এর ইনপুটের জন্যে অপেক্ষা করার প্রয়োজন পরে না। ব্যাচ মোডে সরাসরি কমান্ড এক্সিকিউট হয়ে যায়।
    যেমনঃ
    "del" কমান্ড টিই ধরা যাক। এখন যদি সেইম ফোল্ডারের সেইম ফাইল টিই "সাইলেন্ট মোডে" ডিলিট করতে চাই তবে এক্সট্রা একটা " ফ্ল্যাগ বা সুইচ " ব্যাবহার করা যেতে পারে নিচের মতো করে।

Code:
  C:\>del /Q a
   C:\>


    একটা পূর্ণাঙ্গ ব্যাচ প্রোগ্রাম লিখার জন্যে আমাদের কমান্ড লাইনের কিছু গুরুত্ব পূর্ণ কমান্ড জানতে হবে। নিম্নোক্ত কমান্ড গুলো জানতে পারলেই আপনার ডস মোডে কাজ করার অভিজ্ঞতা বা ইচ্ছা অনেক পরিমানে বেড়ে যাবে। যেহেতু অনেক গুলো কমান্ড তাই আমি পাঁচ দিনে ১০ টা করে ৫০ টি কমান্ড শেষ করবো। কমান্ড গুলোর সাথে কমান্ড গুলোর সিন্ট্যাক্স আর উদাহরণ দেয়া হবে। পুরোটা নিজেকে লিখে এবং বুঝে প্র্যাকটিস করতে হবে। মুখস্থ করার দরকার পড়বে না তাহলে।





    ব্যাচ কমান্ড'সঃ (প্রথম ১০ টি)


    একঃ ver কমান্ডঃ এটা আমাদের উইন্ডোজ ডস এর ভারসন দেখাবে।
 
Code:
 Syntax:
   ver

   Example:
   @echo off
   ver

    দুইঃ ASSOC কমান্ডঃ এটা আপনার কম্পিউটারে ব্যাবহৃত সকল ফাইলের এক্সটেনশন দেখাবে।
 
Code:
 Syntax:
   assoc
   –
   Displays all the file extensions
   assoc | find “.ext”
   –
   Displays only those file extensions which have the
   extension ext.


   Example:

   @echo off
   assoc > C:\lists.txt
   assoc| find “.doc”> C:\listsdoc.txt

    তিনঃ cd কমান্ডঃ এটা আপনার বর্তমান ডিরেকটরি দেখাবে অথবা আপনার ডিরেকটরি চেঞ্জ করতে সাহায্য করবে।
   
Code:
Syntax:
   cd


   Example:
   @echo off
   Rem The cd without any parameters is used to display the current working
   directory
   cd
   Rem Changing the path to Program Files
   cd\Program Files
   cd
   Rem Changing the path to Program Files
   cd %USERPROFILE%
   cd
   Rem
   Changing to the parent directory
   cd..
   cd
   Rem Changing to the parent directory two levels up
   cd..\..
   cd
    চারঃ CLS কমান্ডঃ এটা আপনার বর্তমান কমান্ড স্ক্রিন কে ক্লিয়ার করে।
   
Code:
Syntax:
   cls


   Example:
   @echo off
   cls
    পাঁচঃ Copy কমান্ডঃ এটা কোনো ফাইলকে এক লোকেশন থেকে আরেক লোকেশনে কপি করার জন্যে ব্যাবহৃত হয়।
   
Code:
Syntax:
   Copy [source][destination]




   Example:
   @echo off
   cd
   Rem Copies lists.txt to the present working
   directory. If there is no destination identified , it defaults to the present working directory.
   copy c:\lists.txt
   Rem The file lists.txt will be copied from C:\to C:\tp location
   copy C:\lists.txt c:\tp
   Rem Quotation marks are required if the file name contains spaces
   copy “C:\My File.txt”
   Rem Copies all the files in F drive which have the txt file extension to the current working directory
   copy F:\*.txt
   Rem Copies all files from dirA to dirB. Note that directories nested in dirA will not be copied
   copy C:\dirA dirB


    ছয়ঃ del কমান্ডঃ এটা কোনো ফাইল ডিলেট করতে ব্যাবহার করা হয়। কিন্তু ডিরেকটরি ডিলিটের জন্যে এটা ব্যবহার করা হয় না।
   
Code:
Syntax:
   del [filename]


   Example:
   @echo off
   Rem Deletes the file lists.txt in C:\
   del C:\lists.txt
   Rem Deletes all files recursively in all nested directories
   del /s *.txt
   Rem Deletes all files recursively in all nested directories , but asks for the confirmation from the user first
   Del /p /s *.txt

    সাতঃ dir কমান্ডঃ এটা কোনো ডিরেকটরি এর ফাইল ও ফোল্ডার দেখায়।
   
Code:
Syntax:
   dir


   Example:
   @echo off
   Rem All the directory listings from C:\ will be routed to the file lists.txt
   dir C:\>C:\lists.txt
   Rem Lists all directories and subdirectories recursively
   dir /s
   Rem Lists the contents of the directory and all subdirectories recursively, one file per line, displaying complete path for each listed file or directory.
   dir /s /b
   Rem Lists all files with .txt extension.
   dir *.txt
   Rem Includes hidden files and system files in the listing.
   dir /a
   Rem Lists hidden files only.
   dir /ah


    আটঃ Date কমান্ডঃ এটা সিস্টেম এর তারিখ দেখায় এবং চেঞ্জ করতে সাহায্য করে।
   
Code:
Syntax:
   date


   Example:
   @echo off
   echo %DATE%



    নয়ঃ echo কমান্ডঃ এই ব্যাচ কমান্ড মেসেজ দেখাতে ব্যাবহৃত হয়। আবার এটি দ্বারা কমান্ড প্রম্পটকে বোঝানো হয় যে ইকো অন আছে নাকি অফ।
   
Code:
Syntax:
   echo "any string"


   Example:
   Rem Turns the echo on so that each command will be shown as executed
   echo on
   echo "Hello World"
   Rem Turns the echo off so that each command will not be shown when executed
   @echo off
   echo "Hello World"
   Rem Displays the contents of the PATH variable
   echo %PATH%


    দশঃ Exit কমান্ডঃ এটি কোনো ব্যাচ কে বন্ধ করানোর জন্যে ব্যবহৃত হয়।
Code:
   Syntax:
   exit


   Example:
   @echo off
   echo "Hello World"
   exit




    আজকে এই দশটা কমান্ডই থাক। পরের পর্বে বাকি দশটা কমান্ড নিয়ে আসবো। আরেকটা কথা, আমি উপরে একবার বলেছি কিন্তু আবারো বলছি যে প্র্যাকটিস করবেন এক্সাম্পল গুলো আর কমান্ড গুলো কোন জায়গায় কীভাবে ব্যবহৃত হচ্ছে তা বুঝুন। না বুঝে মুখস্থ করে নিবেন না। তাতে কোর্সের পরে কিছুই বুঝবেন না আর শেষমেষ গালাগাল আমাকেই নিতে হবে।  [Image: shame.gif]
    তাই বারবার বলছি বুঝে , প্র্যাকটিস করে তারপর নেক্সট পর্বে আসুন। আমি পর্ব চালিয়ে যাই আপনি না হয় ধীরে ধীরেই আসুন।   [Image: kidding.gif]

    আর কোনো প্রশ্ন থাকলে বা কোনো জিনিস না বুঝে থাকলে নিচের কমেন্ট বক্সে কমেন্ট করুন।
    আমাকে ফেসবুকেও জিজ্ঞেস করতে পারেন এখান থেকে
    অথবা
    মেইল করতে পারেন এখানে
    আজকের মতো এখানেই শেষ করছি।
    ভালো থাকবেন। ভালো রাখবেন। [Image: cool.gif]