Saturday, January 29, 2022

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

ဒီနေ့တော့ ကျနော် IF ERROR LEVEL နဲ့ CHOICE ကို ပေါင်းပြီးရေးသားနည်းကို ပြောပြပေးပါမယ်။

ပထမဦးစွာ ကျနော်တို့ဟာ CHOICE command က Error Level ကို ဘယ်လိုပုံစံမျိုးနဲ့ Return ပြန်ပေးတယ်ဆိုတာ သိထားဖို့လိုပါသေးတယ်။ CHOICE command ကတော့ ကျနော်တို့ Program Run နေတုန်းမှာ key တစ်ခုခုနှိပ်တဲ့အပေါ်မူတည်ပြီးတော့ ERROR LEVEL ကို return ပြန်ပေးသလို /C မှာ ပါတဲ့ ကြိုတင်သတ်မှတ်ထားတဲ့ Key တစ်ခုခုပေါ်မူတည်ပြီးတော့ လည်း return ပြန်ပေးပါတယ်။ အောက်က ဥပမာလေးကို ကြည့်ပြီးနားလည်မှာပါ…


CHOICE /C:SY12


Error Level တွေကို မလေ့လာခင်မှာ ကျနော်တို့အနေနဲ့ တစ်ခုသိထားရမှာက Error Level Code တွေရဲ့ တန်ဖိုးဟာ User ရိုက်ထည့်လိုက်တဲ့ keyပေါ်မူတည်ပြီး တော့ ပြောင်းလဲနေနိုင်ပါတယ်ဆိုတာပါ။ ဆိုလိုတာကတော့ အပေါ်က Code မှာဆိုရင် S ကို နှိပ်ရင် ရမယ့် Error Level က 1 , Y ကို နှိပ်ရင်တော့ 2 , 1 ကို နှိပ်မ ယ်ဆိုရင်တော့ 3 ဖြစ်ပြီးတော့ 2 ကို နှိပ်မယ်ဆိုရင်တော့ ရရှိမယ့် error level က 4 ဆိုပြီးရရှိလာမှာပါ။ ဒီလောက် ဆိုရင်တော့ ကျနော်တို့ဟာ CHOICE command အနေနဲ့ ဘယ်လိုဘယ်ပုံမျိုးနဲ့ ERROR Level တွေကို Return ပြန်တယ်ဆိုတာ သိသွားပါပြီ။

အခု ဆက်လက်ပြီးတော့ IF ERROR LEVEL command က ဘယ်လိုအလုပ်လုပ်တယ် ၊ သူ့ကို ဘယ်လိုသုံးတယ်ဆိုတာလေ့လာပါမယ်။ သူ့ရဲ့ ရေးသားပုံရေးသား နည်းကတော့…


IF [NOT] ERRORLEVEL number command


အဲဒီ့ကောင်ကတော့ လက်ရှိ Error ပေါ်မူတည်ပြီးတော့သာ အလုပ်လုပ်မှာဖြစ်ပါတယ်။ လက်ရှိ ပေးထားတဲ့(စစ်ထားတဲ့) အခြေအနေတစ်ခု (Error Level တစ်ခု) ဟာ မှန်တယ်ဆိုတော့မှ Program က အလုပ်လုပ်မှာပါ။ အဲဒါကို ဥပမာ နဲ့ လေ့လာကြည့်ရအောင်…


IF ERRORLEVEL 3 ECHO OK


အပေါ်က Code ကို run မယ်ဆိုရင်တော့ အကယ်လို့ ကျနော်တို့ရဲ့ လက်ရှိ Error Level ကသာ 3 ဖြစ်မယ်ဆိုရင် OK ဆိုတာကို အမဲရောင်စကရင်မှာ မြင်ရမှာပါ။


မှတ်ရန် ၊၊ ၊၊ အရေးအကြီးဆုံး တစ်ချက်ကတော့ Error Level ကို If နဲ့ စစ်တဲ့ အခါမှာ စစ်လိုက်တဲ့ error level နဲ့ ရလာမယ့် error level ဟာ တူရင်တူ ၊ မတူရင် ကြီးနေမှ Program အလုပ်လုပ်ပါမယ်။


အပေါ်က Code မှာ ဆိုရင် Error Level ဟာ 3 ထက်ကြီးရင်ကြီး မကြီးရင်တူမှ Program အလုပ်လုပ်မှာဖြစ်ပါတယ်။ အခုဆိုရင်တော့ ကျနော်တို့ဟာ CHOICE နဲ့ IF ERROR LEVEL အကြောင်းနားလည်သွားပြီဖြစ်လို့ သူတို့ ၂ ခုကို ပေါင်းစပ်ကြည့်ဖို့ ကြိုးစားရပါတော့မယ်။ တကယ် တော့ ကြိုးစားစရာတောင်မလိုတော့ပါဘူး သူတို့ ၂ ခုကို တစ်ခုချင်းစီကို သေချာနားလည်နေပြီဆိုရင်ကို ပေါင်းစပ်ဖို့က တော်တော်လေး လွယ်သွားပါပြီ။ သူတို့ ၂ ခုကို အသေအချာ ပေါင်းစပ်တတ်မယ်ဆိုရင်တော့ ကျနော်တို့ဟာ Bat နဲ့ Menu Based Program တွေကို အလွယ်တကူ ရေးသားနိုင်တဲ့ အခြေအနေကို ရောက်လာပြီလို့ဆိုရပါလိမ့်မယ်။ အောက်က ဥပမာလေးကို လေ့လာကြည့်ရအောင်။ အဲဒီ့ ဥပမာဟာဆိုရင်တော့ User ဆီကနေပြီးတော့ အသုံးပြုဖို့ Browser တစ်ခုကို Menu အနေနဲ့ ရွေးခိုင်းတာပါ။

(ဒီနေရာမှာ ကျနော် တစ်ခုပြန်ပြောချင်တာကတော့ ကျနော် အရင်က Site Selection Batch ဆိုပြီးတော့ bat file တစ်ခု ဒီဖိုရမ်ထဲမှာ ရေးပေးခဲ့ဖူးပါသေးတယ်။ အဲဒါလေးနဲ့ အခုဥပမာ ပြမယ့်ဟာက သဘောတရားတူနေလို့ ကျနော် သတိရလို့ ပြန်ပြောတာပါ။ အခု Post ကို ဖတ်ပြီးရင် အဲဒီ့ site selection batch ကို မဖတ်ရ သေးရင် သွားဖတ်ပြီးတော့ လေ့လာလိုက်ပါ။ Code တွေကို အလွယ်တကူ နားလည်ပါလိမ့်မယ်။)

ကဲ အောက်က ဥပမာ ဆီဆက်လိုက်ရအောင်….


@ECHO OFF

ECHO.

ECHO.

ECHO Welcome to Browser Selection Program

ECHO.

ECHO 1. Internet Explorer

ECHO 2. Mozilla Firefox

ECHO x. Exit Browser Selection Program

ECHO.

CHOICE “Please Choose Your Browser” /C:12x /N

IF ERRORLEVEL 3 GOTO END

IF ERRORLEVEL 2 START C:\progra~1\firefox.exe

IF ERRORLEVEL 1 start c:\progra~1\intern~1\iexplore.exe

:END


သတိပြုရန် >> အပေါ်က Code မှာ IF ERROR LEVEL ကို အများကနေ အနည်း (၃ ကနေ ၁) ကို ငယ်စဉ်ကြီးလိုက်စီထားတာကို သတိပြုမိစေချင်ပါတယ်။


ကျနော် ဒီနေ့တော့ ကျနော့် Tutorial ၊ ကျနော့် ရေးသားပုံ ၊ ဆွေးနွေးပုံ ဘယ်လောက်ထိရောက်တယ် ဆိုတာကို စမ်းသပ်တဲ့အနေနဲ့ အပေါ်က ဥပမာ ပြလိုက်တဲ့ Code ကို အစအဆုံးမရှင်းပြတော့ပါဘူး။

လွယ်လည်း လွယ်လို့ပါ။ ကြည့်လိုက်တာနဲ့ကို ဘာကဘယ်လိုဆိုတာ သိနိုင်ပါတယ်။ အရင်ကလို ကျနော် အစအဆုံး ရှင်းပြနေရင် အစ်ကို ၊ အစ်မ တို့အနေနဲ့လည်း တကယ်နားလည်မလည် ဆိုတာ ကိုယ်တိုင်မသိနိုင်ဘူးဖြစ်နေပါလိမ့်မယ်။ အဲဒီ့တော့ အခု ကျနော်ပေးတဲ့ ဥပမာကို မဖတ်ခင် အပေါ်က CHOICE နဲ့ IF ERROR LEVEL ဆိုတဲ့ Command အကြောင်းကို အရင်ဖတ်ပါ ၊ သူတို့ ၂ ခုကို နားလည်ပြီဆိုမှ ဒီ ဥပမာကို ဖတ်ပါ။ အကယ်လို့ CHOICE နဲ့ IF ERROR LEVEL command တွေကိုသာ တကယ်နားလည်သွားပြီ ဆိုရင် ဖတ်ရင်းနဲ့တင် ဒီဥပမာကို သဘောပေါက်နေပါပြီ။ အဲဒီ့လိုဆိုရင် ကျနော် ရေးပေးရကျိုးလည်းနပ်ပါပြီ။ အကယ်လို့ အဲလိုလုပ်တာတောင် နားမလည်ဘူးဆိုရင်တော့ ကျနော့်ရေးသားတင်ပြပုံ ၊ ဆွေးနွေးပုံတွေ တစ်ခုမှမကောင်းဘူးဟုသာ Comment ပေးခဲ့ပါ။ ကျနော် လည်း ဘယ်သောအခါမှ Tutorial ဆိုတာတွေကို ကိုယ်တိုင်လည်း ဆက်မရေးတော့သလို ၊ ဘာသာပြန်ပြီးတော့တောင် မရေးတော့ပါဘူး။


အခုတော့ ကျနော် ကိုယ်တိုင် ဒီ Bat ပိုင်းကို ပြန်လည်စိတ်ပါလာပြီဖြစ်လို့ အစက IF နဲ့ တင်ရပ်လိုက်တော့မလို့ဟာ အခု CHOICE ရယ် Error Level အထိပါ ရောက်လာပါပြီ။ နောက်ရက်တွေလည်း bat နဲ့ ပတ်သက်လို့ ဆက်ရေးပေးဖို့ စာပြန်ဖတ်နေပါတယ်။ ခဏနေရင်ပြန်တွေ့မယ်‌နော် :) …

No comments:

Post a Comment