Thursday, May 19, 2011

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

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

ဒီေန႔ေတာ့ က်ေနာ္ 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 ေတြကိုသာ တကယ္နားလည္သြားၿပီ ဆုိရင္ ဖတ္ရင္းနဲ႔တင္ ဒီဥပမာကို သေဘာေပါက္ေနပါၿပီ။ အဲဒီ့လုိဆုိရင္ က်ေနာ္ ေရးေပးရက်ိဳးလည္းနပ္ပါၿပီ။ အကယ္လို႔ အဲလိုလုပ္တာေတာင္ နားမလည္ဘူးဆုိရင္ေတာ့ က်ေနာ့္ေရးသားတင္ၿပပံု ၊ ေဆြးေႏြးပံုေတြ တစ္ခုမွမေကာင္းဘူးဟုသာ Feedback ေပးခဲ့ပါ။ က်ေနာ္လည္း ဘယ္ေသာအခါမွ Tutorial ဆုိတာေတြကို ကိုယ္တုိင္လည္း ဆက္မေရးေတာ့သလို ၊ ဘာသာၿပန္ၿပီးေတာ့ေတာင္ မေရးေတာ့ပါဘူး။

အခုေတာ့ က်ေနာ္ ကိုယ္တုိင္ ဒီ Bat ပိုင္းကို ၿပန္လည္စိတ္ပါလာၿပီၿဖစ္လို႔ အစက IF နဲ႔ တင္ရပ္လိုက္ေတာ့မလုိ႔ဟာ အခု CHOICE ရယ္ Error Level အထိပါေရာက္လာပါၿပီ။ ေနာက္ရက္ေတြလည္း bat နဲ႔ ပတ္သက္လုိ႔ ဆက္ေရးေပးဖို႔ စာၿပန္ဖတ္ေနပါတယ္။ ေရးသင့္မေရးသင့္ကေတာ့ အခု Post တင္ၿပီး ၿပန္၀င္လာတဲ့ Feedback ေတြေပၚမူတည္ၿပီး ဆုံးၿဖတ္သြားမွာပါ။ Feedback က အမ်ိဳးမ်ိဳးရနုိင္ေတာ့ က်ေနာ္ (၃) ရက္ ေစာင့္မယ္လို႔ ေမွ်ာ္မွန္းထားပါတယ္။ အဲလိုေစာင့္ရတာကေတာ့ က်ေနာ္က ဒီဖိုရမ္မွာတင္မဟုတ္ဘူး တၿခားဖိုရမ္ေတြမွာပါ လိုက္တင္ထားလို႔ပါ။ (၃) ရက္ဟာ လုံေလာက္တဲ့ Feedback ရနုိင္တဲ့ အခ်ိန္လို႔ထင္လုိ႔ေစာင့္တာ ၿဖစ္ပါတယ္။ အဲဒီ့ ေစာင့္ေနတဲ့ (၃) ရက္တာ ကာလအတြင္းမွာေတာ့ က်ေနာ့္အေနနဲ႔ Reversing Tutorial ေတြ ေရးမယ္လုိ႔ စိတ္ကူးထားပါတယ္။ Reverse Engineering နဲ႔ ပတ္သက္လုိ႔ကေတာ့ က်ေနာ္ကိုယ္တုိင္လည္း စတင္ေလ့လာသူဆုိေတာ့ သိပ္မသိေသးလုိ႔ ေလ့လာမိသေလာက္ ေတြကိုသာ ေရးၿဖစ္ဦးမွာပါ။ ဒါေပမယ့္ အခု bat file လုိေတာ့ ဖိုရမ္ေတြမွာ လိုက္ၿပီးတင္မွာ မဟုတ္ပါဘူး။ က်ေနာ္ မေန႔ကမွ ဖြင့္လိုက္တဲ့ဘေလာ့ေလး နဲ႔ က်ေနာ့္ ဖိုရမ္မွာ တင္ၿပီးေတာ့ ၄ ခု ၊ ၅ ခုေလာက္တစ္ခါ E-BOOK လုပ္ၿပီးမွ ဖုိရမ္ေတြမွာ ၿပန္မွ်ေ၀မယ္လို႔လည္းစိတ္ကူးထားပါတယ္။ ဒီစိတ္ကူးေတြ လက္ေတြ႔ ၿဖစ္မၿဖစ္ကေတာ့ က်ေနာ္ ကိုယ္တုိင္ေတာင္ အေသအခ်ာ မသိလုိ႔ ကတိမေပးနုိင္ပါဘူး… အဲဒီ့ေတာ့ စိတ္ကူးအေနနဲ႔သာ ၾကိဳတင္ေၿပာထားရင္း ဒီေန႔ေတာ့ ဒီေလာက္နဲ႔ နားပါရေစဦး…

Feedback မ်ားႏွင့္ ပတ္သက္၍ က်ေနာ္လက္ခံထားေသာ ေဆာင္ပုဒ္…
“သင့္ကို လက္ခံတဲ့သူ အေယာက္ ၁ ေထာင္ ရိွေနၿပီလား ၊ နည္းေနေသးပါတယ္ ၊ ဆက္ၾကိဳးစားပါ။
သင့္ကို ကန္႔ကြက္တဲ့သူ ၁ ေယာက္ ရိွေနၿပီတဲ့လား ၊ မ်ားလြန္းေနၿပီ ၊ ထုိသူ လက္ခံလာေအာင္ အခ်ိန္မီ ၿပဳၿပင္ပါေတာ့။”

Feedback မ်ားကို ေစာင့္ေမွ်ာ္လ်က္
SYKO

written by SYKO

0 comments:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Top WordPress Themes