টপিকঃ Batch Programming টিউটোরিয়াল [পর্ব ০২]

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


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


চলুন টিউটোরিয়ালে যাওয়া যাক।  cool



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




প্রশ্নঃ ব্যাচ (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" ফোল্ডারের মধ্যে থাকা একটা ফাইল ডিলিট করতে চাই তবে এটা নিচের মতো করে আমার ইনপুটের জন্যে অপেক্ষা করবে।

 

  C:\>del a
    C:\a\*, Are you sure (Y/N)?
    y

    Silent Mode or Batch Mode: এই মোডে ইউজার এর ইনপুটের জন্যে অপেক্ষা করার প্রয়োজন পরে না। ব্যাচ মোডে সরাসরি কমান্ড এক্সিকিউট হয়ে যায়।

    যেমনঃ

    "del" কমান্ড টিই ধরা যাক। এখন যদি সেইম ফোল্ডারের সেইম ফাইল টিই "সাইলেন্ট মোডে" ডিলিট করতে চাই তবে এক্সট্রা একটা " ফ্ল্যাগ বা সুইচ " ব্যাবহার করা যেতে পারে নিচের মতো করে।

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


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






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



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

 

  Syntax: 
    ver

    Example: 
    @echo off
    ver

    দুইঃ ASSOC কমান্ডঃ এটা আপনার কম্পিউটারে ব্যাবহৃত সকল ফাইলের এক্সটেনশন দেখাবে।

 

  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 কমান্ডঃ এটা আপনার বর্তমান ডিরেকটরি দেখাবে অথবা আপনার ডিরেকটরি চেঞ্জ করতে সাহায্য করবে।

   

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 কমান্ডঃ এটা আপনার বর্তমান কমান্ড স্ক্রিন কে ক্লিয়ার করে।

   

Syntax:
    cls


    Example:
    @echo off
    cls

    পাঁচঃ Copy কমান্ডঃ এটা কোনো ফাইলকে এক লোকেশন থেকে আরেক লোকেশনে কপি করার জন্যে ব্যাবহৃত হয়।

   

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 কমান্ডঃ এটা কোনো ফাইল ডিলেট করতে ব্যাবহার করা হয়। কিন্তু ডিরেকটরি ডিলিটের জন্যে এটা ব্যবহার করা হয় না।

   

 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 কমান্ডঃ এটা কোনো ডিরেকটরি এর ফাইল ও ফোল্ডার দেখায়।

   

 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 কমান্ডঃ এটা সিস্টেম এর তারিখ দেখায় এবং চেঞ্জ করতে সাহায্য করে।

   

Syntax:
    date


    Example:
    @echo off
    echo %DATE%



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

   

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 কমান্ডঃ এটি কোনো ব্যাচ কে বন্ধ করানোর জন্যে ব্যবহৃত হয়।

    Syntax:
    exit


    Example:
    @echo off
    echo "Hello World"
    exit




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

    তাই বারবার বলছি বুঝে , প্র্যাকটিস করে তারপর নেক্সট পর্বে আসুন। আমি পর্ব চালিয়ে যাই আপনি না হয় ধীরে ধীরেই আসুন।   kidding


    আর কোনো প্রশ্ন থাকলে বা কোনো জিনিস না বুঝে থাকলে নিচের কমেন্ট বক্সে কমেন্ট করুন।

    আমাকে ফেসবুকেও জিজ্ঞেস করতে পারেন। অথবা মেইল করতে পারেন।

    আজকের মতো এখানেই শেষ করছি।

    ভালো থাকবেন। ভালো রাখবেন। cool

স্বপ্ন দেখে শিক্ষার সাথে মিলিয়ে নিই স্বপ্ন টাকে। একবারো তো ভাবি না এ যে শুধুই স্বপ্ন!