Social Icons

twitterfacebookgoogle pluslinkedinrss feedemail

Pages

Wednesday 17 October 2012

Bat file ႏွင့္ ပါတ္သတ္ၿပီးေလ့လာမိသေလာက္ (1)

ဒီ Batch File Programming  ယခု ေလ့လာခ်င္ပါတယ္ဟုေၿပာေသာ သူမ်ားရိွေသာေၾကာင့္သာ အခုလို အေၿခခံကအစ ေရးေပးၿဖစ္တာပါ။ ကၽြန္ေတာ္လည္း programming နဲ႕ေ၀းေနတာေတာ္ေတာ္ေလးၾကာၿပီ။ ဒါေပမယ့္ အခုက bat file နဲ႕ပါတ္သတ္ၿပီးေမးလာေတာ့ နည္းနည္းေတာ့ေၾကာက္သြားတယ္။ programming ဆိုရင္ေတာ္ေတာ္ေလးေၾကာက္တာ။ ဒါေပမယ့္ က်ေနာ္ မေလ့လာေတာ့ဘဲ ပစ္ထားတဲ့ ဘာသာရပ္တစ္ခုၿဖစ္ၿပီး အခုမွ ၿပန္ကိုင္လိုက္သလိုၿဖစ္ေနတာေၾကာင့္ မၿပည့္စံုတာမ်ားလည္း ရိွပါလိမ့္မယ္။ ဒါေပမယ့္ေက်းဇူးတင္ပါတယ္ စာျပန္ၾကည့္ျဖစ္လို႕။ က်ေနာ္ရွာေဖြေလ့လာမိသေလာက္ေလးကိုျပန္တင္ေပးသြားမယ္။ ေက်ာ္ထက္၀င္း (နည္းပညာဘားအံ) ရဲ႕စာေလးေတြကိုျပန္ဖတ္ျဖစ္သြားေတာ့ သူ႕ကိုလည္းျပန္ညႊန္းေပးခ်င္ပါတယ္။

bat မွာ ပါ၀င္မႈအမ်ားဆုံးနဲ႔ အေၿခခံ အက်ဆုံးေလးေတြကို စၿပီးေဆြးေႏြးၾကည့္ရေအာင္
အေၿခခံအက်ဆုံး command ၃ ခုကေတာ့
(၁) echo
(၂) @echo off/on နဲ႔
(၃) pause စတာေတြဘဲၿဖစ္ပါတယ္
ပထမဆုံးအေနနဲ႔ ဥပမာေလး တစ္ခုေရးၾကည့္ပါမယ္
@echo off
echo Hello This is a First Program
pause
အဲဒါေလးကို ေစ်းအၾကီးဆုံး Windows Tool တစ္ခုၿဖစ္တဲ့ notepad မွာ ေရးၿပီးေတာ့ test1.bat ဆိုၿပီးသိမ္းလိုက္ပါ။
ၿပီးရင္ေတာ့ Run လုိက္ပါ။ အမဲေရာင္ Screen ထဲမွာ ေအာက္မွာ ၿပထားတဲ့စာသားေလးေတြေပၚလာပါလိမ့္မယ္။
Hello This is a First Program
Press any key to continue...
ခုနက ဥပမာေလးမွာ echo off အစား echo on သံုးၿပီးေတာ့ ဘာမ်ားထူးၿခားမလဲဆုိတာ ေအာက္က Code ေလးကိုစမ္းေရးၾကည့္ရေအာင္
@echo on
echo Hello This is a First Program
pause
ၿပီးရင္ေတာ့ ခုနကအတုိင္း notepad မွာ ေရးၿပီး test2.bat ဆုိၿပီးသိမ္းၿပီး ၿပန္ Run လုိက္ပါ…
ေအာက္မွာ ၿပထားတဲ့ အတုိင္း ၿမင္ရပါလိမ့္မယ္။
C:\Documents and Settings\User\Desktop>echo Hello This is a First Program
Hello this is a First Program
C:\Documents and Settings\User\Desktop>pause
Press any key to continue…
အဲလိုၿမင္ရပါလိမ့္မယ္။ C:\Documents and Setting\… စတာေတြကေတာ့ တင္ထားတဲ့ Windows ၊ File ဖြဲ႔စည္းပံုေတြေပၚမူတည္ၿပီး ကြဲၿပားပါလိမ့္မယ္။
အခု အေပၚမွာ ခုနကေရးထားတဲ့ Code ေလးေတြကို ရွင္းၿပေပးပါ့မယ္
က်ေနာ္တုိ႔ ဒုတိယေရးလိုက္တဲ့ code မွာဆုိရင္ @echo on ကိုသံုးလိုက္တဲ့ အတြက္ File ထားရာလမ္းေၾကာင္းက Program Code တစ္ခါ Run တုိင္းလာၿပေနပါတယ္။
အကယ္လို႔မ်ား ပထမစစခ်င္းမွာ ေရးခဲ့တဲ့ @echo off ကို သံုးထားမယ္ဆုိရင္ေတာ့ မည္သည့္ လမ္းေၾကာင္းကိုမွ်မေပၚေစဘဲနဲ႔ ကိုယ္လိုခ်င္တဲ့ စာသားကို ရွင္းလင္းစြာေပၚေစမွာၿဖစ္ပါတယ္။
အဲဒါကိုၾကည့္ခ်င္းအားၿဖင့္ @echo on နဲ႔ off ရဲ႕ ၿခားနားခ်က္ကို သိနုိင္ၿပီးေတာ့ @echo off ကို သံုးတာ ပိုေကာင္းတယ္ဆုိတာကို နားလည္သြားမယ္ထင္ပါတယ္။
ေနာက္တစ္ဆင့္အေနနဲ႔ echo အေၾကာင္းရွင္းၿပပါ့မယ္
က်ေနာ္တုိ႔ဟာ ရိုးရိုး စာေၾကာင္းတစ္ေၾကာင္းေလာက္ ကို Program Run တုန္းၿပခ်င္တယ္ဆုိရင္ (ဥပမာ ခုနက Program ထဲကလုိ “Hello this is a First Program” ဆုိတဲ့ simple phrase တစ္ခုေလာက္ကိုဘဲ ၿပခ်င္တယ္ဆုိရင္ေတာ့ echo ကို ေဖာ္ၿပခ်င္တ့ဲစာသားေရွ႕မွာ ထားၿပီးေရးနုိင္ပါတယ္.
အခု pause အေၾကာင္းရွင္းၿပေပးပါမယ္
pause ဆုိတာကေတာ့ ရပ္တာပါ
batch file ကို run ေနရင္းနဲ႔ ခဏနားခ်င္ရင္ pause ကို သံုးပါတယ္။ သူ႔ကိုသံုးရင္ batch file က က်ေနာ္တုိ႔ ဆီက key တစ္ခုခု မႏွိပ္မခ်င္း အလုပ္မလုပ္ေတာ့ပါဘူး။ key တစ္ခုခုႏွိပ္လိုက္မယ္ဆုိရင္ေတာ့ သူလုပ္စရာရိွတာဆက္လုပ္သြားပါလိမ့္မယ္။ ခုနက Program ၂ ခုမွာ ဆုိရင္ေတာ့ pause ၿပီးေတာ့ ဘာမွ ဆက္မေရးထားလို႔ ဘာအလုပ္မွ ဆက္လုပ္မွာ မဟုတ္ဘဲ program ကေန ထြက္သြားမွာၿဖစ္ပါတယ္။
pause ကို ထပ္မံနားလည္ေစဖို႔ ေအာက္က ဥပမာေလးကို ေလ့လာၾကည့္ပါမယ္
@echo off
echo Hello Welcome Back
pause
echo I am testing pause function
pause
အဲဒါကို အေပၚက ဥပမာေတြ အတိုင္း Save ၿပီး Run ရင္ေတာ့ အေၿဖအတုိင္းေဖာ္ၿပပါလိမ့္မယ္
Hello Welcome Back
Press any key to continue…
I am testing pause function
Press any key to continue…
အဲဒီ့ Program ေလးကို စမ္းၿပီးရင္ေတာ့ pause ကို နားလည္သြားေလာက္ၿပီထင္ပါတယ္။
အခုေနာက္ထပ္ နည္းနည္း အဆင့္ၿမင့္တဲ့ Command ေတြကို ေလ့လာၾကည့္ရေအာင္
msg နဲ႔ cls အေၾကာင္းကို အရင္ေလ့လာၾကည့္ပါမယ္
အရင္အတုိင္း ဥပမာေလးေတြနဲ႔ ေလ့လာၾကည့္ရေအာင္
Notepad ကို ၿပန္ဖြင့္ၿပီးေတာ့ ေအာက္က Code ေလးေတြကို ရိုက္ထည့္ၾကည့္ပါမယ္….
@echo off
echo Hello I am back
pause
cls
echo I am testing cls and msg commands
msg * Bye Bye
pause
ၿပီးရင္ေတာ့ test3.bat နဲ႔ သိမ္းၿပီး Run လိုက္ပါ
သူ႔ အေၿဖကေတာ့ ေအာက္ပါအတိုင္းၿဖစ္ပါလိမ့္မယ္
Hello I am back
Press any key to continue…
(မွတ္ခ်က္၊၊ ၊၊ ဒီေနရာ ေရာက္လို႔ အကယ္လို႔မ်ား က်ေနာ္တုိ႔ဟာ သူေၿပာတဲ့ အတုိင္း key တစ္ခုခုကို ႏွိပ္လိုက္မယ္ဆုိရင္ program က cls ဆုိတဲ့ code ရဲ႕ အလုပ္ကို ဆက္လုပ္မွာ ၿဖစ္ပါတယ္။
အဲလို လုပ္မယ္ဆုိရင္ေတာ့ ခုနက ေပၚခဲ့တဲ့ Hello I am back ဆိုတာၾကီးက ေပ်ာက္သြားမွာၿဖစ္ပါတယ္။
ၿပီးရင္ cls ရဲ႕ ေအာက္က echo ဆုိတဲ့ code အတြက္ အလုပ္လုပ္ပါလိမ့္မယ္…key တစ္ခုခုကို ႏွိပ္လုိက္တယ္လို႔ သေဘာထားၿပီး ဆက္ၾကည့္ၾကရေအာင္….အခုဆုိရင္ေတာ့ ေအာက္မွာ ၿပထားတဲ့ စာသားဟာ သင့္ ရဲ႕ Black Screen ေပၚေရာက္ေနေလာက္ပါၿပီ…)
I am testing cls and msg commands
(ဒီစာေပၚၿပီးတာနဲ႔ message box တစ္ခုက်လာပါလိမ့္မယ္ message box ထဲက စာသားကေတာ့ )
Bye Bye
(ပါတဲ့ ၿပီးရင္ေတာ့ အရင္အတုိင္း)
Press any key to continue…
(ဆုိတာေလးလာမွာပါ)
နားလည္ပါ့မလားေတာ့မသိဘူး… က်ေနာ္လည္း ဘယ္လုိရွင္းရမွန္းမသိလို႔ ရွင္းလင္းခ်က္ေတြကို ကြင္းစ ကြင္းပိတ္ () ထဲထည့္ေရးလိုက္တယ္ေနာ္။
အဲဒီ့ေတာ့ cls နဲ႔ msg ကို ဘယ္လိုနားလည္လုိက္ပါသလဲ….
အစ္ကို ၊ အစ္မ တို႔ ဘယ္လိုနားလည္လဲေတာ့မသိဘူး ၊ က်ေနာ္ေၿပာၿပခ်င္တာကေတာ

-cls ဆုိတာရဲ႕ အရွည္ေကာက္က Clear Screen ပါ (Java သင္ဖူးတဲ့သူအားလုံးသိသလို ၊ ကြန္ၿပဴတာကိုင္ဖူးရင္ေတာင္ သိပါတယ္) သူက Screen မွာရိွတဲ့ စာသားေတြကို ရွင္းထုတ္ (ဖ်က္ထုတ္) ေပးရံုသက္သက္ပါ။
-msg ဆုိတာကေတာ့ Message ရဲ႕ အတုိေကာက္ၿဖစ္ၿပီးေတာ့ သူက User ကို Message Box တစ္ခုခ်ေပးတာၿဖစ္ပါတယ္။ GUI ေလးနဲ႔ေပါ့…
ေနာက္ထပ္ Command ေတြ အေၾကာင္းဆက္ေလ့လာလုိက္ရေအာင္….
အခုတစ္ခါရွင္းၿပခ်င္တာကေတာ့ rem နဲ႔ start ဆုိတာေလးေတြပါ…
အဲဒါေတြကို စမ္းဖို႔အတြက္ Folder တစ္ခုကို Test ဆုိတဲ့ နာမည္နဲ႔ ေဆာက္ေပးပါ…
ၿပီးရင္ အဲဒီ့ထဲကို စိတ္ၾကိဳက္ ပံုတစ္ပံုထည့္ၿပီးေတာ့ testpic ဆုိတဲ့ နာမည္ေပးလိုက္ပါ…
ေနာက္တစ္ဆင့္အေနနဲ႔ Notepad ကို ဖြင့္ၿပီး ေအာက္မွာရိွတဲ့ Coding ေတြကို ရိုက္ထည့္ေပးပါ…
@echo off
echo We are testing start and rem
rem title TEST4
start testpic.jpg
pause
ၿပီးရင္ေတာ့ test4.bat ဆိုၿပီး ခုနက Test ဆုိတဲ့ Folder ထဲမွာ save ၿပီး Run လုိက္ပါ. ေအာက္မွာ ၿပထားတဲ့ အတုိင္းၿမင္ရပါလိမ့္မယ္။
We are testing start and rem
Press any key to continue
(key တစ္ခုကို ထပ္ႏွိပ္လုိက္ရင္ ခုနက စိတ္ၾကိဳက္ေရြးၿပီးေတာ့ ထည့္ထားတဲ့ testpic.jpg ကို ၿမင္ရမွာပါ။ ပံုရဲ႕ extension ကိုေကာ ေရြးလိုက္တဲ့ပံုေပၚမူတည္ၿပီး .png ၊ .gif စသည္ၿဖင့္ကြဲပါလိမ့္မယ္)
အဲဒါဆုိရင္ေတာ့ အေပၚက Program ကို နားလည္ၿပီထင္ပါတယ္။
-start ဆုိတာကေတာ့ စိတ္ၾကိဳက္ file တစ္ခုကို ေခၚ run ေပးတာၿဖစ္ပါတယ္။ သူ႔အေနာက္မွာ ဘာမွ မပါဘဲနဲ႔ start သီးသန္႔ ေရးခဲ့မိရင္ေတာ့ ေနာက္ထပ္ အမည္းေရာင္ screen ေပၚလာမွာၿဖစ္ပါတယ္။
-rem ဆုိတာက တကယ္ေတာ့ remark ကို ေခၚတာပါ. ဒါေပမယ့္ သူက bat file run ေနတုန္းမွာ မၿမင္ရတတ္ပါဘူး. (ဘယ္အခ်ိန္ၿမင္ရလည္းေတာ့ က်ေနာ္လည္းမသိဘူး သိခ်င္ရင္ေတာ့ ရွာလိုက္ၾကေပါ့ေနာ္)
အခု goto ၊ set နဲ႔ if ကို ရွင္းပါေတာ့မယ္…
အခုမွစေလ့လာသူေတြအတြက္ ဒီအပိုင္းက နည္းနည္းစၿပီးေတာ့ ရႈပ္လာမွာၿဖစ္လို႔ေသခ်ာေလး လိုက္လုပ္ၾကည့္ေစခ်င္ပါတယ္။
ေအာက္မွာေပးထားတဲ့ Code ေတြကို Notepad ထဲမွာ ရိုက္ထည့္လုိက္ပါ…
@echo off
echo This is a Test
echo If you want to do math type 1 and press enter
echo If you want to see a picture type 2 and press enter
set /p option=
if ‘%option%’==’1′ goto :math
if ‘%option%’==’2′ start testpic.jpg (အေပၚမွာတုန္းကလိုဘဲ ၾကိဳက္တဲ့ Extension ကို သံုးနုိင္ပါတယ္။)
:math
echo 2+2
pause
ၿပီးရင္ေတာ့ ခုနက Folder ထဲမွာဘဲ test5.bat ဆုိၿပီး save ၿပီးရင္ Run ပါမယ္။
Run လုိက္ရင္ေတာ့ ေအာက္မွာ ၿပထားတဲ့ အတိုင္းၿပပါလိမ့္မယ္…
This is a Test
If you want to do math type 1 and press enter
if you want to see a picture type 2 and press enter
(ဒီအဆင့္ကို ေရာက္ရင္ေတာ့ 1 နဲ႔ 2 နွစ္ခုထဲက ၾကိဳက္ရာတစ္ခုကို ေရြးနုိင္ပါတယ္)
(၁ ကိုေရြးမယ္ဆုိရင္ေတာ့ ေအာက္က 2+2 ဆုိတာကို ၿပေပးပါလိမ့္မယ္)
2+2
(၂ ကို ေရြးခဲ့မယ္ဆုိရင္ေတာ့ ထည့္ထားတဲ့ စိတ္ၾကိဳက္ပံုေလးထြက္လာပါလိမ့္မယ္…)
(ၿပီးရင္ေတာ့ ထုံးစံအတုိင္း Press any ….. ပါဗ်ာ )
Press any key to continue…
အေပၚကရလာတဲ့ အေၿဖကို ၾကည့္ပါ ၿပီးရင္ မူရင္း coding ကို ၿပန္ၾကည့္ၾကည့္ပါ…
goto ရဲ႕ အလုပ္လုပ္ပံုကို နားလည္လာပါလိမ့္မယ္။ goto ဆုိတာကေတာ့ Coding ထဲမွာပါမယ့္ နာမည္တစ္ခုေပးထားတဲ့ program အပိုင္းေလးတစ္ခုဆီကို ညႊန္းခ်င္ရင္သံုးပါတယ္။
(အၿခား Programming Language အေနနဲ႔ ဆုိရင္ Function ေတြ Procedure ေတြကို ေခၚတဲ့ အလုပ္လုပ္ပါတယ္)
အေပၚက Program ထဲမွာဆုိရင္ က်ေနာ္တုိ႔ဟာ :Math ဆိုတာကို သံုးခဲ့တာေတြ႕မွာပါ…
အဲဒီ့ Math ေအာက္မွာ ေရးထားတဲ့ ဟာေတြအားလုံးဟာ Math နဲ႔ ဆုိင္တာေတြၿဖစ္ပါတယ္။ အဲဒါဆုိရင္ goto :Math ဆုိၿပီးေရးလိုက္တဲ့ အခါမွာေတာ့ Program ရဲ႕ အလုပ္လုပ္ၿခင္းေတြဟာ Math ဆီကို ေရာက္သြားၿပီး Math ရဲ႕ ကိစၥေတြကို လုပ္ေဆာင္ပါလိမ့္မယ္။ ဒီေလာက္ဆုိ goto အေၾကာင္းသိေလာက္ၿပီထင္ပါတယ္။
(မသိေသးရင္ လည္း ၿပန္ဖတ္ေပါ့. နားမလည္ရင္ေတာ့ တၿခားသူေရးတဲ့စာသာ ဖတ္လိုက္ေတာ့. က်ေနာ္ အရည္အခ်င္းမရိွလို႔ ဒီေလာက္လြယ္တာကို နားလည္ေအာင္မေရးနုိင္တာလုိ႔လည္း သတ္မွတ္လုိက္ပါ။)
ခုနက Coding မွာပါတဲ့ set နဲ႔ if ရဲ႕အေၾကာင္းစရွင္းပါေတာ့မယ္
သူတို႔ ၂ ခုကို ေရာၿပီးရွင္းမွာ ၿဖစ္ပါတယ္… နားလည္ေအာင္ ေသခ်ာၾကည့္ေပးပါ.
set ဆုိတာကေတာ့ တစ္ခုခုကို သတ္မွတ္တာပါ
သူ႔ကို ေရးရမယ့္ တကယ့္ Syntax ကေတာ့
set variable=[string] ၿဖစ္ပါတယ္။
ဒါေပမယ့္ If နဲ႔ တြဲသံုးခ်င္တဲ့ အခါမ်ိဳးတုိ႔ မွာေတာ့ set X စသည္ၿဖင့္ X တစ္လုံးတည္းကို Variable ေၾကၿငာေလ့ရိွပါတယ္။ အဲလို ေၾကၿငာခဲ့တယ္ဆုိရင္ေတာ့ X ထဲကို ၾကိဳက္တဲ့ Variable ၀င္လာခြင့္ရိွပါတယ္။
Set အေၾကာင္းသိခ်င္ရင္ေတာ့ Run>>cmd>>set /? ဆုိၿပီးရိုက္ထည့္လိုက္ပါ.. ၿပီးရင္ေတာ့ ကိုယ့္ဟာကိုယ္ဆက္ဖတ္နုိင္ပါတယ္
ခုနက Program ကို ၿပန္ဆက္ပါမယ္…
က်ေနာ္ တို႔ ခုနက Code ထဲမွာ set /p option= ဆိုၿပီးေတာ့ ေရးခဲ့ပါတယ္
အဲဒါကို set choice ဆုိၿပီးေတာ့ အလြယ္ေၿပာင္းၿမင္ၾကည့္ရေအာင္ (/p ပါရင္ရႈပ္ေနမွာဆုိးလို႔ပါ.. ၿပီးေတာ့ က်ေနာ္ကိုယ္တုိင္လည္း ေမ့ေနတာပါတယ္… ေနာက္ သတိရရင္ ၿပန္ရွင္းေပးမယ္ေလ. မရေတာ့လည္း မရွင္းေတာ့ဘူးေပါ့ )
အေပၚက Program ကိ္ု set choice ဆုိၿပီး ေၿပာင္းေရးလိုက္ၿပီဆုိပါစုိ႔
ဒါဆုိရင္ အကယ္လို႔ က်ေနာ္တို႔သာ 1 ကို ရိုက္မယ္ဆုိရင္ choice ဆိုတဲ့ variable ထဲကို 1 ၀င္သြားပါလိမ့္မယ္။
ၿပီးရင္ေတာ့ ခုနကလိုဘဲ :Math ဆုိတဲ့ အလုပ္ကို ဆက္လုပ္ပါလိမ့္မယ္
အဲဒီ့ ၿပင္ေရးလိုက္တာေလးကို ေအာက္မွာ ၿပန္စမ္းေရးၾကည့္ရေအာင္
set choice
if ‘%choice%’==’1′ goto :math
ဒါဆုိရင္ေတာ့ အကယ္လို႔ က်ေနာ္တို႔က 1 လုိ႔ရုိက္ထည့္ရင္ choice ထဲကို 1 ၀င္မယ္ ၿပီးရင္ေတာ့ Math ဆုိတဲ့ function အလုပ္ကို လုပ္ပါလိမ့္မယ္.(if မွာပါတဲ့ % ဆုိတာေတြကိုေတာ့ က်ေနာ္ကိုယ္တုိင္ေမ့ေနလို႔ ခ်န္လွပ္ထားခဲ့ပါရေစ) အခုက Basic အပိုင္းဆုိေတာ့ အဲဒါေတြ မသိေသးးလဲ ကိစၥမရိွေသးပါဘူး….
ဒီေလာက္ဆုိရင္ if ၊ set နဲ႔ goto ကို နားလည္သြားၿပီလို႔ထင္ပါတယ္

No comments:

Post a Comment