Saturday, January 29, 2022

BAT File သင်ခန်းစာ (၇)

အခု ကျနော်ဆွေးနွေးပေးမယ့် အပိုင်းကတော့ Input/Output ရယ် Redirect လုပ်တာရယ်စတဲ့ အပိုင်းတွေကို ဆွေးနွေးပေးမှာပါ။ ဒီအပိုင်းကတော့ ကျနော် သိပ်မသိလို့ Internet ပေါ်ကနေ ရှာတွေ့ထားတာတွေကို ဘာသာပြန်ထားတာပါ။


System တစ်ခုဟာ ပုံမှန်အားဖြင့်တော့ Output ကို Screen ကနေထုတ်ပြပြီးတော့ ၊ Input ကိုတော့ Keyboard ကနေလက်ခံပါတယ်။ အဲလိုလုပ်တာဟာ လုပ် c dရိုးလုပ်စဉ် သိနေကြ မြင်ဖူးနေကြ လူတိုင်းသိတဲ့ လမ်းဟောင်းကြီးဖြစ်တဲ့ အတွက် ကျနော်တို့ ပျင်းရတာအမှန်ပါ။

အကယ်လို့များ Input တစ်ခုခုကို တခြားတနေရာရာကနေ လက်ခံပြီးတော့ Output ကိုလည်း တခြားနေရာတစ်ခုခုကို သွားထုတ်နိုင်ရင် ပျော်ဖို့နည်းနည်းကောင်း လာမှာပေါ့နော်။ ဟုတ်တယ်ဟုတ်။

Output ကို Screen ပေါ်သက်သက်တင်ပြတာမဟုတ်ဘဲနဲ့ တခြားနေရာမှာ သွားရှိနေစေချင်ရင်တော့ ကျနော်တို့ဟာ Output Redirection Operator ဖြစ် တဲ့ > ဆိုတာကို သုံးလို့ရပါတယ်။

> ဆိုတာက ဘာလုပ်ပေးလည်းဆိုရင်တော့ ကျနော်တို့ Desktop ဒါမှမဟုတ် တစ်နေရာရာကို Print Screen ဖမ်းပြီးတော့ Paint ထဲမှာ save လုပ်သလိုပါဘဲ။ သူကလည်း ကျနော်တို့ ရဲ့ bat program က ရလဒ်တွေ အဖြေတွေကို မှတ်ပြီးတော့ text file တစ်ခုအနေနဲ့ သိမ်းပေးတာပါ။

ဥပမာ တစ်ခုအနေနဲ့ ပြောရမယ်ဆိုရင်တော့….

အကယ်လို့များ ကျနော်တို့ဟာ net ဆိုတဲ့ command အကြောင်းသိချင်လို့ Command Prompt ထဲမှာ help ဆိုတာရိုက်ပြီးတော့ မေးလိုက်တယ်ဆိုပါစို့။ အဲဒါဆိုရင်တော့ ထွက်လာမယ့် အဖြေတွေက နည်းတာမဟုတ်တဲ့ အတွက်ကြောင့် Screen နဲ့ လည်းမဆန့်တာမျိုး ဖြစ်နိုင်သလို ၊ CommandPrompt က minimize ဖြစ်နေရင်လည်း scroll ဆင်းသွားတာ တအားမြန်လွန်းပါတယ်။ အဲဒါဆိုရင် ကျနော်တို့ အနေနဲ့ လိုချင်တဲ့ အဖြေကို ပြန်ရှာတဲ့အခါ scroll bar ကို အပေါ်တက်အောက်ဆင်းနဲ့ အလုပ်ရှုပ်လွန်းပါတယ်။

အဲဒီ့ပြဿနာမျိုးကို ဖြေရှင်းဖို့ကတော့ Output Redirection ဆိုတဲ့ Operator လေးကို သုံးပြီးတော့ ထွက်လာမယ့် ရလဒ်တွေကို text file ထဲမှာ သိမ်းလိုက်တာ အဆင်အပြေဆုံးပါဘဲ။

အောက်က help > help.txt ဆိုတဲ့ Code လေးကို Command Prompt ကိုခေါ်ပြီးတော့ ရိုက်ကြည့်ပါ။

c:\ကိုယ်ပေးချင်တဲ့လမ်းကြောင်း > help > help.txt

အဲဒါဆိုရင်တော့ ကျနော်တို့ရိုက်လိုက်တဲ့ Command Prompt Screen ထဲမှာ ဘာမှကျလာမှာတော့မဟုတ်တော့ပေမယ့်။ ကျနော်တို့ ရွေးပေးခဲ့တဲ့ လမ်းကြောင်း အောက်မှာ help.txt ဆိုတဲ့ text file လေး ရောက်နေပါလိမ့်မယ်။ သူ့ကို ဖွင့်ကြည့်လိုက်ရင်တော့ help ဆိုတဲ့ Command ကို ရိုက်လိုက်ရင်ရလာမယ့် အဖြေတွေ ကို save လုပ်ပေးထားတာ တွေ့ရပါလိမ့်မယ်။ OK?

အဲ… တစ်ခုတော့ သတိပေးမယ်နော်။ text file ရဲ့ နာမည်ပေးရင် အရေးကြီးဖိုင်တွေရဲ့ နာမည်တွေနဲ့ သွားမထပ်ပါစေနဲ့။

ဥပမာ ကျနော့်ဆီမှာ ကျနော့် Password တွေ သိမ်းတဲ့ password.txt ဆိုတဲ့ file ရှိတယ်ဆိုပါစို့။ အဲဒီ့ password.txt ဆိုတဲ့ နာမည်နဲ့ ခုနက help.txt ဆိုတဲ့နေရာမှာ ရိုက်ထည့်လိုက်ရင် ကျနော် သိမ်းထားတဲ့ Password တွေအားလုံးကို Overwrite လုပ်ပလိုက်ပါတယ်။

တိုတို နဲ့ လွယ်လွယ် ပြောရရင်တော့ဗျာ အဲဒီ့ > ဆိုတဲ့ Operator လေးက file နာမည်တူနေတာ တွေ့ရင်တောင်မှ ဘာမပြောညာမပြောနဲ့ ရှိပြီးသား စာတွေကို သူမှတ်ရမယ့် အဖြေနဲ့ overwrite လုပ်လိုက်တယ်ဆိုတာပါ။ အကယ်လို့များ file နာမည်အတူတူပေးမိခဲ့ရင်တော့ ကိုယ့်အပြစ်နဲ့ကိုယ်နော်။ ကျနော် သတိပေးတယ်။ file နာမည် တူတာမရှိရင်တော့ ကိစ္စမရှိပါဘူး။ သူ့ဟာသူ အလိုလို create လုပ်ပေးသွားလိမ့်မယ်။

ခုနက overwrite လုပ်တတ်တယ်လို့ သတိပေးလိုက်တယ်နော်။ ဒါပေမယ့် အဲဒီ့ Overwrite လုပ်တာကို ဖြေရှင်းဖို့ နည်းတစ်ခုတော့ ရှိပါသေးတယ်။ ထပ်ဖြည့်သွား တဲ့နည်းပါ။

အဲဒါကတော့ >> ဆိုတဲ့ Operator သုံးရမှာပါ။ ကျနော်တို့ ခုနက ဥပမာမှာဆိုရင်တော့ help.txt ထဲကို help ရိုက်ရင်ထွက်လာမှာတွေ သိမ်းထားပြီးပါပြီ။ အဲဒီ့ဟာ တွေ အနောက်မှာ ထပ်ဖြည့်ချင်ရင်တော့ အောက်က Code လေးနဲ့ စမ်းကြည့်လိုက်ပါ။

c:\ခုနက help.txt ရှိတဲ့လမ်းကြောင်း > net >> help.txt

Command Prompt ထဲမှာ အဲဒီ့လိုရိုက်လိုက်ရင်တော့ ကျနော်တို့ရဲ့ ရှိပြီးသား help.txt file ထဲမှာ net command ရဲ့ အကြောင်းလေးကို ထပ်ဖြည့်ပြီးသားတွေ့ ရမှာပါ။ ရှင်းမယ်ထင်ပါတယ်နော်။

အလွယ်နည်းမှတ်ထားဖို့က >> ဆိုတာ ရှိပြီးသား file တစ်ခုထဲကို စာထပ်ဖြည့်တဲ့သဘောပါ။

OK?

ကျနော် ပြောရင်းပြောရင်းနဲ့ bat file အကြောင်းကနေ DOS ဘက်နွယ်သွားပြီထင်တယ်။ အစကတည်းကလည်း Bat နဲ့ DOS ဆိုတာ အတူတူပါဘဲ။ အဲဒီ့တော့ ကျနော်လည်း ပြည့်ပြည့်စုံစုံလေး ပြောပြချင်လို့ Internet ပေါ်မှာမွှေရင်းနဲ့ တွေ့တာတွေ အကုန်ပေါင်းထည့်ပြီးတော့ ဘာသာပြန်ပေးလိုက်တာ။ ဟီး… အကျိုးတော့ ရှိပါတယ်။ ဟုတ်တယ်ဟုတ်။

DOS ရဲ့ Command တွေ အနေနဲ့ ခုနကလိုမျိုး File တွေဆီကိုသာ redirect လုပ်ပေးနိုင်တာမဟုတ်ပါဘူး ၊ အမျိုးမျိုးသော Device တွေဆီကိုလည်း redirect လုပ်ပေးနိုင်ပါသေးတယ်။ အောက်မှာ ဆက်လေ့လာပါ။

Command အနေနဲ့ ရိုက်ရမည့် အမည် Device အမည်

AUX Auxiliary Device (COM1)

CLOCK$ Real Time Clock

COMn Serial Port (COM1, COM2, Com3, COM4)

CON Console (Keyboard, Screen)

LPTn Parallel Port (LPT1, LPT2, LPT3)

NUL NUL Device (ဘာမှမရှိတာကို ဆိုလိုတာပါ)

PRN Printer

ဥပမာ အနေနဲ့ ကြည့်မယ်ဆိုရင်တော့…. အကယ််လို့များ ကျနော်တို့ဟာ directory ရဲ့ list ကို Print ထုတ်ချင်တယ်ဆိုရင် အောက်က Command ကို သုံးလို့ရ ပါတယ်။

c:\မိမိ ရွေးချယ်သော နှစ်သက်ရာ လမ်းကြောင်း>dir *.* > prn

အဲဒါဆိုရင် စက်နဲ့ ချိတ်ဆက်ထားတဲ့ Printer ကနေ Print ထုတ်ပါလိမ့်မယ်။ တခြား Command တွေလည်း သူတို့နဲ့ ဆိုင်ရာဆိုင်ရာ အလုပ်ကို လုပ်ကြပါတယ်။ အဲဒီ့မှာ ခက်တာ တစ်ခုက NUL ဆိုတဲ့ Device ပါ။ ကျနော် အစက သူ့ကို ဘယ်နားမှာ သုံးရမယ်မှန်းမသိခဲ့ဘူးဗျ။

အဲဒါနဲ့ ဘော်ဒါကြီး ဂေါ်ဂယ် ဆီသွားမေးတော့ ဒီလိုလေးပြောထားလေရဲ့….

NUL Device ကိုနောက်တစ်မျိုးအနေနဲ့ ‘bit bucket’ လို့ခေါ်ပါသတဲ့။ သူ့ကို Redirect လုပ်ချင်တဲ့ ဘယ်နေရာမှာမှ သုံးလေ့မရှိပါဘူး။ ဒါပေမယ့် လုပ်ချင်တဲ့ အလုပ်ပြီးမြောက်ကြောင်း Message ပြချင်တာမျိုးမှာတော့ သုံးလေ့ရှိပါတယ်။ ဥပမာ… ကျနော်တို့ File တစ်ဖိုင်ကို DOS မှာ COPY လုပ်လိုက်တယ်ဆိုရင်တော့ အလုပ်ပြီးမြောက်ကြောင်းကို 1 file(s) coppied. ဆိုပြီးတော့ ပြတတ်ပါတယ်။ အဲလိုမျိုးကို Redirect လုပ်တဲ့ အခါမှာ ပြချင်တယ်ဆိုရင်တော့….

C:\မိမိလမ်းကြောင်း > copy test.txt > NUL

အဲဒီ့ အပေါ်က Code လေးသုံးလိုက်ရင် ရပါပြီ။ အဲဒါဆိုရင်တော့ ကျနော်တို့ လိုချင်တဲ့ 1 file(s) coppied. ဆိုပြီးတော့ ပြပါလိမ့်မယ်။ OK?

ဒီလောက်ဆိုရင်တော့ ကျနော်တို့ဟာ Output ကို Redirect လုပ်ခြင်းနဲ့ ပတ်သက်ပြီး သိသွားပါပြီ။ နောက်တစ်ခန်းမှာတော့ Input ကို Redirect လုပ်ကြည့်ပါမယ်။

No comments:

Post a Comment