Saturday, June 4, 2011

Batch File သင္ခန္းစာ (၁၀)

Bat files အေၾကာင္းကုိ သိခ်င္ ေလ႕လာခ်င္တဲ႕ သူငယ္ခ်င္းမ်ားအတြက္ ကုိယ္တုိင္းေရးမဟုတ္ေပမဲ႕ ကၽြန္ေတာ္ကုိယ္တုိင္ မသိခင္က စေလ႕လာမိခဲ႕တဲ႕ ဆုိဒ္မွ မွတ္စုအေနနဲ႕ ကူးထားခဲ႕တာေလးပါ။ အဲ႕ဒီဆုိဒ္ကုိ ညြန္းခ်င္ေပမဲ႕လည္ လက္ရွိ ဆုိဒ္လိပ္စာကလည္ မေတြ႕ေတာ႕တာေၾကာင္႔ စာေရးသားသူအေနနဲ႕ နားလည္ေပးမယ္လုိ႕ ယုံၾကည္ပါတယ္။ ဒီသင္ခန္းစာကုိ ကၽြန္ေတာ္ ကုိယ္တုိင္း ေရးသားထားတာ မဟုတ္တာကုိေတာ႕ ရုိးသားစြာ ၀န္ခံပါတယ္။ ဒါေၾကာင္႔ မသိမနားလည္ရင္ေတာ႕ ေမးျမန္းႏုိင္ပါတယ္။ အကၽြမ္းက်င္ဆုံး အဆင္႔ မဟုတ္ေပမဲ႕ တက္ႏုိင္သမွ် ရွင္းျပေပးပါမည္။ မႈရင္း အေရးအသား အတုိင္း မျပင္ မျဖည္႔စြတ္ဘဲ တင္ျပလုိက္ပါတယ္။

ဒီေန႔ က်ေနာ္ေဆြးေႏြးေပးမယ့္ အေၾကာင္းအရာကေတာ့ Input ကို redirect လုပ္ၿခင္းပါ။
သူမွာ့လည္း က်ေနာ္တုိ႔ Output မွာတုန္းက လုပ္ခဲ့သလိုမ်ိဳးပါဘဲ Operator တစ္ခုရိွပါတယ္။ အဲဒါကေတာ့ ၿဖစ္ၿပီး အခု Input မွာေတာ့ < ပါ။ C တုိ႔ C++ တုိ႔နဲ႔ နည္းနည္းဘဲကြာတယ္ေနာ္။ ဟိုမွာက cout<> ေလ… သိပ္မလြဲပါဘူး။
Input Redirection Operator ကို ဘယ္လုိသံုးၾကလဲဆုိတာကေတာ့ ရွင္းပါတယ္ ၊ က်ေနာ္တုိ႔ text file မွာ ရိွတာေတြကို DOS ထဲေၿပာင္းထည့္တဲ့ အခါမ်ိဳးမွာ သံုးၾကတာပါ။ Output တုန္းက DOS ကေန text file ဆီကို လႊဲၿပီးေတာ့ အခု Input မွာေတာ့ text file ကေန DOS ကို လႊဲတဲ့သေဘာပါ။
သူ႔ကိုေတာ့ က်ေနာ္တုိ႔ဟာ Command တစ္ခ်ိဳ႕နဲ႔ တြဲသံုးေလ့ရိွပါတယ္။ အဲဒီ့ Command ေတြကေတာ့ MORE နဲ႔ TYPE ဘဲၿဖစ္ပါတယ္။
MORE ဆုိတာက က်ေနာ္တို႔ရဲ႕ Text File ထဲက စာသားေတြဟာ တအားရွည္တဲ့ အခါမ်ိဳးမွာ Screen တစ္ခ်ပ္စာကို တစ္ခါၿပေပးတဲ့ command ၿဖစ္ပါတယ္။ တနည္းအားၿဖင့္ Scroll ဆဲြရန္လိုတဲ့ စာသားေတြကို Screen Size ဆန္႔သေလာက္ တစ္ခါဆီၿပေပးတဲ့ command ပါ။ သူက Enter တစ္ခါေခါက္ရင္ တစ္လိုင္းဆင္းေပးပါတယ္။ (ေရးထားတာ ရႈပ္လုိ႔ နားလည္ပါ့မလားမသိဘူး)
TYPE ဆုိတာကေတာ့ က်ေနာ္တုိ႔ရဲ႕ Text File ထဲက စာသားရိွသေလာက္ကို တစ္ခါတည္းနဲ႔ Scroll ဆြဲၿပီးၿပတဲ့ Command ပါ။ သူ႔ရဲ႕ Scroll လုပ္သြားတဲ့ speed က တအားၿမန္ေတာ့ ေအာက္ဆုံးေရာက္ၿပီးမွ အေပၚကို တစ္ခါ ၿပန္တက္ရရင္ ၊ စာတအားရွည္တဲ့ အခါမ်ိဳးမွာ အခက္ေတြ႔ႏုိင္ပါတယ္။ (ဒါေကာ နားလည္ရဲ႕လား။ နားမလည္ရင္ ၿပန္ေမးပါေနာ္။)
အဲဒီ့ Command ႏွစ္ခုရဲ႕ အဓိပၸါယ္ကို နားလည္ၾကတယ္ဆုိရင္ေတာ့ ၊ ဘယ္ Command က ကိုယ္နဲ႔ အသင့္ေတာ္ဆုံး ၿဖစ္မယ္။ အသံုးၿပဳမယ့္သူနဲ႔ အသင့္ေတာ္ဆုံး ၿဖစ္မယ္ဆုိတာ စဥ္းစားၿပီး သံုးၾကပါ။ (က်ေနာ္ကေတာ့ TYPE မွ TYPE ဘဲ… More က enter ေခါက္ရတာ လက္ေညာင္းလို႔။ )
ဘာကြာသလဲဆုိတာ ေသခ်ာသိခ်င္ရင္ ေအာက္က Code ကို Command Prompt ထဲမွာ သြားရိုက္ၾကည့္လိုက္ပါ။
C:\မိမိ import (or) redirect လုပ္မယ့္ file ရိွသည့္လမ္းေၾကာင္း > MORE echo y | del *.*
အဲဒီ့ Code ကို ၾကည့္ရင္ေတာ့ နားလည္ၿပီထင္ပါတယ္။ echo နဲ႔ y ကို ရိုက္ထုတ္ပါတယ္။ အဲဒီ့အတြက္ y ဟာ အဲဒီ့ အခ်ိန္မွာ output တစ္ခုၿဖစ္ပါတယ္။ သူ႔ေနာက္မွာေတာ့ | ဆုိၿပီးေတာ့ Pipe Operator တစ္ခုသံုးထားပါတယ္။ အဲလိုသံုးထားတဲ့ အတြက္ က်ေနာ္တုိ႔ဟာ del တဲ့ Command ကလိုအပ္တဲ့ import တစ္ခုၿဖစ္တဲ့ y ေနရာမွာ ခုနက ထြက္လာတဲ့ output ၿဖစ္တဲ့ y ကို သံုးလိုက္ပါတယ္။OK? (ဟူး… ဒီေလာက္ ဆုိရင္ေတာ့ သေဘာေပါက္ၿပီထင္ပါတယ္။)
အခုေရးခဲ့တဲ့ နည္းေတြကေတာ့ Input Redirect လုပ္နည္းမ်ားၿဖစ္ပါတယ္။ ပံုမွန္လုပ္ေနၾကၿဖစ္တဲ့ Keyboard ကေန Input သြင္းတာထက္ ၊ မိမိရဲ႕ System ထဲမွာဘဲ Input ကို လွည့္သံုးသြားတဲ့နည္းပါ။ လုပ္ရတာ ေပ်ာ္ဖို႔ေကာင္းတယ္ေနာ္။ (အခု စာဖတ္သူေတာ့ ေပ်ာ္မေပ်ာ္မသိဘူး။ က်ေနာ့္အတြက္ေတာ့ ဒါေတြ ေလ့လာခဲ့ရတဲ့ အခ်ိန္ဟာ ေပ်ာ္ဖို႔ အေကာင္းဆုံးပါဘဲ။ ဘာမွန္းမသိဘဲနဲ႔ Screen မဲမဲၾကီးမွာ စာေတြ က်လာတာကို ေပ်ာ္ခဲ့တာေလ။ အခုေတာ့ ပ်က္ဆီးေနၿပီ… ဘာမွလုပ္ခ်င္စိတ္ ၊ ေလ့လာခ်င္စိတ္မရိွဘူးၿဖစ္ေနတယ္။)
Batch File Programming က တကယ္ေလ့လာရင္ အရမ္းကို လြယ္တဲ့ဟာတစ္ခုပါ။ ၿပီးေတာ့ သံုးတတ္ရင္ သံုးတတ္သလို အက်ိဳးလည္းရိွၿပီးေတာ့ ၊ သံုးရတာလည္း တကယ္ ေပ်ာ္ဖို႔ ေကာင္းပါတယ္။ သူ႔ကိုေလ့လာခ်င္တယ္ ဆုိရင္လည္း တၿခားဟာေတြလို မ်ားမ်ားစားစား knowledge ရိွစရာမလိုပါဘူး။ DOS Command ေတြကို နည္းနည္းပါးပါး အကြ်မ္းတ၀င္ရိွတယ္ဆုိရင္ဘဲ လုပ္စားလို႔ရေနၿပီ။
DOS Command ေတြနဲ႔ ပါတ္သက္လို႔ ေလ့လာလို႔ရတဲ့ site ေတြ အမ်ားၾကီးရွိပါတယ္။ အဲဒီ့မွာေလ့လာပါ ၊ ဖတ္ပါ ၊ မွတ္ပါ ၊ သင္ယူပါ ၊ ကိုယ္တုိင္လုပ္ၾကည့္ပါ။ အဲလို site ေတြမွာ တစ္ခါတစ္ေလဆုိရင္ DOS ရဲ႕ Hidden Command ေတြလည္း မေရမတြက္ႏုိင္ေအာင္ရွိေနတတ္ပါတယ္။ အဲလိုလုပ္ၿပီးေတာ့ ေလ့လာလုိက္မယ္ဆုိရင္ Batch File Programming မွာ ဆရာတစ္ဆူၿဖစ္လာႏုိင္တယ္။ အေပၚမွာေရးခဲ့ဖူးတုန္းကလုိဘဲ ဆရာတစ္ဆူၿဖစ္ရင္ ဘာလုပ္လို႔ရလဲေတာ့ မေမးၾကနဲ႔ေနာ္။ က်ေနာ္လည္း Bat ကို အိတ္စပါတ္ မဟုတ္သလို စပယ္ရွယ္လစ္ လဲဟုတ္ဘူး။ ဘာလုပ္လုိ႔ရလဲဆုိတာလည္း ကိုယ့္ေပၚဘဲမူတည္တယ္ေနာ္။ က်ေနာ္ ေၿပာတာ ၂ ခါရိွၿပီ… ထပ္ေမးၾကနဲ႔ )
ဒီေန႔ေတာ့ ဒီေလာက္ဘဲေနာ္။ ေနာက္တစ္ခါ ဘာေရးရမယ္မွန္းက ခုထိမသိေသးလို႔ ၊ ဒီေန႔ေတာ့ ေနာက္တစ္ေခါက္ ဘာေဆြးေႏြးမယ္ဆုိတာ ၾကိဳမေၿပာခဲ့ေတာ့ဘူးေနာ္။ တားတားဖိုရမ္လည္း ၿပင္ဆင္ေနရေသးလို႔ ၊ က်န္တာ ေခါင္းထဲ သိပ္မ၀င္ဘူး ၿဖစ္ေနတယ္။ ေနာက္တစ္ခါ ပိုစ့္တင္မွ ဘာအေၾကာင္းလဲဆုိတာ ၾကည့္ေပေတာ့။ တာ့တာ…..
စာဖတ္သူအေပါင္း က်န္းမာေပ်ာ္ရႊင္ၿပီး ကြန္နက္ရွင္ေကာင္းေကာင္း ရၾကပါေစ။

written by SYKO

2 comments:

  1. အရမ္းကိုေက်းဇူးတင္ပါတယ္ခင္ဗ်ာ။ ဆက္ေလ့လာပါအံုးမယ္။

    ReplyDelete
  2. BATCH Programming no equal BASH Programming ?
    Please , ubuntu in use BASH Programming fri write
    ok , thank you

    ReplyDelete

စဥ္းစားမႈမပါဘဲ သင္ယူေသာ ပညာသည္ အခ်ည္းႏွီးျဖစ္၍ ၊ ပညာမရွိဘဲ စဥ္းစားျခင္းကား အလြန္ အႏၱရာယ္ၾကီးေပသည္။ (ကြန္ျဖဴးရွပ္)

 

Recent Post

Random Post