ဒီ Batch 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 ကို နားလည္သြားၿပီလို႔ထင္ပါတယ္။
အခု က်ေနာ္ ပထမဆုံး စေၿပာခ်င္တာကေတာ့ call နဲ႔ exit တုိ႔ အေၾကာင္းၿဖစ္ပါတယ္။
အရင္တေခါက္ကလိုဘဲ Notepad ထဲသြားၿပီးေတာ့ ေအာက္မွာ ရိွတဲ့ Code ေတြကို ရိုက္ထည့္လိုက္ပါ။
@echo off
echo WoW I know the basics of batch
call call.bat
pause
exit
ၿပီးရင္ေတာ့ Folder အသစ္တစ္ခုတည္ေဆာက္ၿပီး အဲဒါကို adv1.bat ဆုိတဲ့နာမည္နဲ႔ သိမ္းလိုက္ပါ။
ေနာက္တစ္ခါ Notepad ကို ၿပန္ဖြင့္ပါ။ ၿပီးရင္ ေအာက္မွာ ရိွတဲ့ Code ကို ထပ္ရိုက္ပါ။
@echo off
echo I Love *Y*
pause
ၿပီးရင္ေတာ့ ခုနက Save ထားတဲ့ adv1.bat နဲ႔ တူတူ Folder ထဲမွာ call.bat ဆုိတဲ့နာမည္နဲ႔ Save လုိက္ပါ။
ေနာက္တစ္ဆင့္အေနနဲ႔ ပထမေရးထားတဲ့ adv1.bat ဆုိတာကို Run လုိက္ပါ။
ေအာက္မွာ ၿပထားတဲ့ အတုိင္း Screen မွာ ေပၚလာပါလိမ့္မယ္။
WoW I know the basics of batch
I Love *Y*
Press any key to continue… (ၾကိဳက္တဲ့ Key တစ္ခ်က္ႏွိပ္လိုက္ပါ)
Press any key to continue… (ဒီစာေၾကာင္းေလး ေနာက္တစ္ခါထပ္ေပၚလာမွာပါ။ ေနာက္ထပ္ ၾကိဳက္တဲ့ Key ကို ႏွိပ္မွ Program က ထြက္သြားပါလိမ့္မယ္)
အဲဒါကို ၾကည့္ခ်င္းအားၿဖင့္ exit က ဘာအလုပ္လုပ္တယ္ဆုိတာ သိမွာပါေနာ္..
ေနာက္တစ္ခုအေနနဲ႔ call ပါ… call ဆုိတာကေတာ့ ေနာက္ထပ္ batch file တစ္ခုကို ေခၚသံုးတာပါ။
ဒီေလာက္ဆုိ call နဲ႔ exit အေၾကာင္းသိေလာက္ၿပီထင္ပါတယ္။
က်ေနာ္ေရးတာက အလြယ္အဆင့္ကေန အခက္အဆင့္ ကို သြားေနတာေတာ့ မဟုတ္ဘူးေနာ္။ က်ေနာ့္ မွာ ကိုးကားစရာစာအုပ္က မရိွေတာ့လို႔ ဟိုေရာက္ဒီေရာက္နဲ႔ က်ေနာ္ သတိရၿပီးေတာ့ သိေသးသမွ်ေတြေရးေပးေနတာပါ။ ဖတ္ရတာ
အခက္အခဲေတာ့ နည္းနည္းရိွမယ္လို႔ထင္တယ္။ နားလည္ ေပးမယ္လို႔ထင္ပါတယ္။
ဟုတ္ကဲ့ပါ အခု က်ေနာ္ ေရးေပးမွာကေတာ့ Windows Application တစ္ခုကို ဘယ္လို ေခၚ Run မလဲဆုိတာပါ
ေအာက္မွာေပးထားတဲ့ Code ကို Notepad မွာရိုက္ထည့္ၾကည့္ပါ့မယ္…
@echo off
echo I am testing to call Notepad.exe
start /MIN notepad
pause
အဲဒါကို save ၿပီးေတာ့ Run မယ္ဆုိရင္ေတာ့ ေအာက္မွာ ၿပထားတဲ့ အတုိင္းေပၚလာပါလိမ့္မယ္။
I am testing to call Notepad.exe
(အဲဒါလာၿပီးရင္ Notepad က minimized အေနအထားနဲ႔ ေပၚလာပါလိမ့္မယ္။ /MIN ေနရာမွာ /MAX လို႔ထားရင္ေတာ့ maximized အေနအထားနဲ႔ ေပၚမွာပါ)
Press any key to continue…
ေနာက္တစ္ဆင့္အေနနဲ႔ batfile ထဲကေန ထြက္ဖုိ႔ အခ်ိန္သတ္မွတ္ေပးၾကည့္ရေအာင္
ေအာက္မွာေပးထားတဲ့ Code ေလးေတြကို Notepad ထဲမွာေရးေပးပါ
@echo off
echo i am trying timeout
set wait=0
:pause1
set /a wait=%wait%+1
if %wait% leq 1000 goto pause1
echo IT WORKED!!!
pause
ဒီ Code ေတြကို နားမလည္ဘူးဆုိရင္ေတာ့ Copy Paste သာလုပ္ၿပီးေတာ့ Notepad ထဲကို ထည့္လိုက္ပါေတာ့။
က်ေနာ္ အေပၚမွာေရးဖူးတဲ့ နွစ္ခုထဲမွာ set အေၾကာင္း အနည္းငယ္ပါၿပီးေတာ့ if နဲ႔ condition စစ္တာလည္း ပါသလို
:pause1 လုိမ်ိဳး Function ခြဲေရးတာလည္း ဘာဆုိတာ ပါပါတယ္။ အဲဒီ့ေတာ့ ဒါကို နားမလည္ရင္လည္း အဲဒါေလးေတြ ၿပန္ၾကည့္လုိက္ရင္ အၾကမ္းဖ်င္းေတာ့
သေဘာေပါက္မွာပါ။
% ေတြ /a ေတြနဲ႔ က်န္တဲ့ နားမလည္တာေတြကို ခ်န္ထားခဲ့ပါ။ အကယ္လို႔ က်ေနာ္ အခ်ိန္ရရင္ Parameter ေတြ အေၾကာင္းကို
က်ယ္က်ယ္ၿပန္႔ၿပန္႔ ထပ္ေဆြးေႏြးေပးပါ့မယ္။ ခုေတာ့ ဒီတုိင္း
သေဘာေပါက္ရံုေလာက္ေလး ထားၿပီး အဲဒါေလးကို Save ၿပီးရင္ Run လိုက္ပါ။
ေအာက္မွာ ၿပထားတဲ့ အတိုင္းေပၚလာပါလိမ့္မယ္…
I am trying timeout
(ၿပီးရင္ေတာ့ စကၠန္႔ နည္းနည္းေလာက္ေစာင့္ရပါလိမ့္မယ္) (အဲဒါကေတာ့ :pause1 ထဲမွာ ေရးထားတဲ့ Code ေၾကာင့္ပါ။)(အဲဒါကို ေစာင့္ၿပီးရင္ေတာ့
ေနာက္တစ္ေၾကာင္းလာပါလိမ့္မယ္)
IT WORKED!!!
Press any key to continue…
ဒါဆုိရင္ေတာ့ စကၠန္႔ ၿဖစ္ၿဖစ္ မိနစ္ၿဖစ္ၿဖစ္ သတ္မွတ္ၿပီးေတာ့ batch file run တာကို ရပ္ၿခင္းအား က်ေနာ္တို႔ စမ္းသတ္ၿပီးပါၿပီ။ ဘယ္လို အလုပ္လုပ္တယ္ဆုိတာလည္း
နားလည္မယ္လို႔ထင္ပါတယ္။
က်ေနာ္ ေနာက္ထပ္ တစ္ဆင့္အေနနဲ႔ TIME ဆုိတဲ့ Command အေၾကာင္းကို ရွင္းၿပေပးပါ့မယ္
ေအာက္မွာ ေပးထားတဲ့ Code ေတြကို Notepad ထဲမွာ ေရးလုိက္ပါ…
@echo off
echo Hello…. What time it is!!!
TIME 12:00
echo oHH it is 12:00
pause
အဲဒါကို Save ၿပီး Run မယ္ဆုိရင္ေတာ့ ေအာက္မွာ ၿပထားသလို ၿမင္ရပါလိမ့္မယ္…
Hello…. What time it is!!!
oHH it is 12:00
ဒါဆုိရင္ TIME က ဘာအလုပ္လုပ္လည္း ဆုိတာ သိၿပီလုိ႔ထင္ပါတယ္။ စက္ရဲ႕ အခ်ိန္ကို ေၿပာင္းေပးတာပါ။
ေနာက္တစ္ဆင့္အေနနဲ႔ က်ေနာ္တို႔ DOS ထဲမွာ ၿပမယ့္ စာသားေတြနဲ႔ ေနာက္ခံေတြ ကို အေရာင္ေလးေတြနဲ႔ အလွဆင္ၾကည့္ၾကပါမယ္။
ေအာက္မွာ ေပးထားတဲ့ Code ေတြကို Notepad ထဲကူးၿပီး Save ၿပီး Run လိုက္ပါ။
@echo off
echo I am trying the colors
pause
color 04
echo testing
pause
color f
echo again
pause
color 4f
echo DONE
pause
Run လုိက္ရင္ ဘယ္လိုေဖာ္ၿပတယ္ဆုိတာေတာ့ ကိုယ့္ဟာကိုယ္ လုပ္ၾကည့္လိုက္ပါ။ က်ေနာ္ Code ေတြကို ဘဲရွင္းၿပေပးပါေတာ့မယ္။
color ဆုိတာကေတာ့ အေရာင္သတ္မွတ္တယ္ဆုိတာ လူတိုင္း သိပါလိမ့္မယ္။ သူ႔ေနာက္မွာ ထည့္တဲ့ Code ေတြကို ရွင္းၿပပါ့မယ္။
04= background black နဲ႔ font ကို red ထားတာပါ
f = font ကို white ထားတာပါ
4f = background red နဲ႔ f ကို white ထားတာပါ
ပိုၿပီး အေသးစိတ္သိခ်င္ရင္ေတာ့ Run>>cmd>>color /? ဆုိၿပီးရိုက္လိုက္ပါ။
0=balck
1=blue
2=green
3=aqua
4=red
5=purple
6=yellow
7=white
8=gray
9=light blue
a=light green
b=light aqua
c=light red
d=light purple
e=light yellow
f=bright white
အဲဒီ့လုိေဖာ္ၿပပါလိမ့္မယ္။ အဲဒါေတြကို ခုနက က်ေနာ္တို႔ သံုးသလိုမ်ိဳး color 9f စသည္ၿဖင့္ တြဲသံုးနုိင္ပါတယ္။
ေရွ႕မွာထားတဲ့ ဟာက Back Color ၿဖစ္ၿပီးေတာ့ ေနာက္ကဟာက Font Color ၿဖစ္ပါတယ္။
ဒီေလာက္ဆုိရင္ေတာ့ Color ေတြ အေၾကာင္းသိနုိင္ပါၿပီ။ ဥာဏ္ရိွသလို ခ်ဲ႕ထြင္အသံုးခ် သြားနုိင္ပါတယ္။
အခုေနာက္တစ္ဆင့္အေနနဲ႔ Title ေၿပာင္းတာကို ေၿပာၿပေပးပါ့မယ္
ေအာက္က Code ေတြကို Notepad ထဲမွာေရးၿပီး Save လုိက္ပါ။
@echo off
title Myanmar IT Resource
echo Trying to change the title
pause
အဲဒါကို Run လုိက္ရင္ေတာ့ Title Bar မွာ Myanmar IT Resource ဆုိၿပီးေဖာ္ၿပပါလိမ့္မယ္
ေနာက္တစ္ဆင့္ အေနနဲ႔ Shutdown နဲ႔ Restart ကို စမ္းၾကည့္ၾကပါမယ္။
@echo off
start C:\Windows\RUNDLL.EXE user.exe,exitwindowsexec
exit
အဲဒီ့ အေပၚကေကာင္ေလးကို save ၿပီး Run မယ္ဆုိရင္ေတာ့ Restart က်သြားပါလိမ့္မယ္။
@echo off
start C:\Windows\RUNDLL32.EXE user,exitwindows
exit
အေပၚကဟာေလးကုိ Run ရင္ေတာ့ Shutdown ပါ.
ေနာက္ထပ္ နည္းေတြလည္း ရိွပါေသးတယ္။ တၿခားနည္းေတြက လူတုိင္းသိၿပီးသားေတြမို႔လုိ႔ ဒီနည္းေလးကို ေဖာ္ၿပေပးလိုက္တာပါ။ code
ေတြကေတာ့ ရွင္းရွင္းလင္းလင္းေတြ မို႔လုိ႔ လူတုိင္းနားလည္မယ္ထင္လို႔ ထပ္
မရွင္းၿပေတာ့ဘူးေနာ္။ နားမလည္ေလာက္စရာလည္း မပါဘူးလို႔ထင္ပါတယ္။
ေနာ္တုိ႔ For Loop အေၾကာင္းေလး စလုိက္ရေအာင္
သူ႔ကို ေရးမယ္ဆုိရင္ ေရးပံုေရးနည္းကေတာ့
FOR %%PARAMETER IN(set) DO command
For Loop ရဲ႕ Syntax ကိုေတြ႔လို႔ စိတ္မညစ္သြားပါနဲ႔။ က်ေနာ္ အတတ္နုိင္ဆုံး နားလည္လြယ္ေအာင္ေရးေပးပါ့မယ္။
က်ေနာ့္ တုန္းက ဆုိရင္ ဒီ Looping အပိုင္းလည္း ေရာက္ေရာ သင္ေပးမယ့္သူလည္း မရိွ ၊ Google မွာရွာေတာ့ လည္း အၿပည့္အစံုမရနဲ႔ ေတာ္ေတာ္ ဒုကၡေရာက္ခဲ့ရတာ။
အခုေတာ့ က်ေနာ္လည္း နားလည္သင့္သေလာက္ နားလည္ ခဲ့ၿပီးၿပီမို႔ မွတ္မိသေလာက္
ၿပန္လည္မွ်ေ၀တာပါ။
အစ္ကို တုိ႔ ဒီအပိုင္းမွာ ဖတ္ရတာ နားမလည္ေတာ့ လုိ႔ စိတ္ညစ္ၿပီးေတာ့ Bat ကို မေလ့လာေတာ့တာ မ်ိဳးေတာ့ မလုပ္ပါနဲ႔ လို႔
ေတာင္းဆုိခ်င္ပါတယ္။ က်ေနာ့္တုန္းကလည္း အဲလို စိတ္မ်ိဳးၿဖစ္ဖူးလို႔ပါ။
နားမလည္ရင္ က်ေနာ့္ကို ေမးပါ။ က်ေနာ္မသိရင္လည္း က်ေနာ့္ထက္ေတာ္တဲ့
တတ္တဲ့သူေတြကို ၿပန္ေမးေပးပါ့မယ္။
အတတ္နုိင္ဆုံး နားလည္ေအာင္ေရးေပးမွာ ၿဖစ္လို႔ ေသခ်ာလိုက္လုပ္ေပးပါ။
ကဲဒါဆုိရင္ က်ေနာ့္ ေရးနည္း ထုံးစံအတုိင္း ေအာက္က ဥပမာေလးနဲ႔ စလုိက္ရေအာင္
@echo off
cls
for %%A in (abc,def,xyz) do echo %%A
အဲဒါေလးရဲ႕ Code ေတြကို ရွင္းၿပပါ့မယ္။ cls ကေတာ့ သိၿပီးသားၿဖစ္မွာပါ။
For Loop ထဲမွာ Variable တစ္ခုၿဖစ္တဲ့ %%A ကို ေၾကၿငာပါတယ္။ ၿပီးေတာ့ သူ႔ထဲကို မတူညီတဲ့ Value ေတြကို (abc,def,xyz) ဆုိၿပီေတာ့ ကြင္းထဲမွာၾကိဳထည့္ထားပါတယ္။ အဲဒီ့
ကြင္းထဲကေကာင္ေတြကို ေတာ့ predefined set value လုိ႔ေခၚပါတယ္။ အဲဒါက
Looping တစ္ခါပတ္တုိင္း တစ္ခါသတ္မွတ္ထားမွာပါ။
ေနာက္ဆုံးက echo %%A ဆုိတာနဲ႔ For Loop က Variable ရဲ႕ တန္ဖိုးကို အသစ္ေၿပာင္းထည့္ပါတယ္။
%%A ဆုိတာကေတာ့ Variable တစ္ခုၿဖစ္ၿပီး သူက Looping တစ္ခါပတ္တုိင္း မတူညီတဲ့ Values ေတြ ကို predefined set ထဲက တန္ဖုိးေတြနဲ႔ လက္ခံပါတယ္။
0 ကေန 9 ကလြဲရင္ %% ေနာက္မွာ ၾကိဳက္တဲ့ character တစ္လုံးစီကို သံုးႏိုင္ပါတယ္။
IN(abc,def,xyz) ဆုိတာကေတာ့ For Loop လုပ္ေဆာင္မယ့္ list တစ္မ်ိဳးၿဖစ္ပါတယ္။
က်ေနာ္တို႔ Program က Looping တစ္ခါပတ္တုိင္းမွာ Variable ၿဖစ္တဲ့ %%A ထဲကို () ကေန အမ်ိဳးမ်ိဳးေသာ တန္ဖိုးေတြထည့္သြင္းနုိင္ပါတယ္။
() ထဲက တန္ဖိုးေတြကို ေတာ့ comma,colon ေတြနဲ႔ space bar စတာေတြနဲ႔ ပိုင္းၿခားနုိင္ပါတယ္ဗ်ာ။
() ထဲက တန္ဖုိးမကုန္မခ်င္း For Loop ကအလုပ္လုပ္ေနေစပါတယ္။
DO ကေတာ့ Looping တစ္ခါပတ္ တုိင္း ဘာအလုပ္လုပ္ခ်င္တယ္ဆုိတာေၿပာတာပါ။
ခုနက က်ေနာ္တုိ႔ ေရးခဲ့တဲ့ Program မွာဆုိရင္ေတာ့ ECHO %%A နဲ႔ အေၿဖကို ရိုက္ထုတ္ထားပါတယ္။
ထုိသို႔ ရိုက္ထုတ္ထားခ်င္းအားၿဖင့္ Loop တစ္ခါပတ္တုိင္း abc ဆုိတဲ့ Variable A ထဲက တန္ဖိုးကို Looping အတြက္ Do သံုးၿပီး Echo နဲ႔ အေၿဖကို
User ကို ၿပသေပးပါတယ္။
က်ေနာ္ စာနဲ႔ ေၿပာတာ နားမလည္ရင္ ခုနက Program ကို Run ၿပီးေတာ့ ၾကည့္လုိက္ပါ။ ေအာက္ကေပးထားတဲ့ အေၿဖအတုိင္းရပါလိမ့္မယ္။
abc
def
xyz
အဲလို တစ္ခုခ်င္းစီ Looping အတုိင္းထြက္လာမွာပါ။ Loop ၃ ခါပတ္ခဲ့ပါတယ္။ အေၿဖကို do နဲ႔ echo သံုးၿပီးေတာ့ ၃ခါရိုက္ထုတ္ပါတယ္။ abc က A ထဲမွာ ပထမအၾကိမ္ Loop
အတြက္ရိွမွာ ၿဖစ္ၿပီးေတာ့ ၊ def က ဒုတိယ loop ၊ xyz ကေတာ့ တတိယ loop မွာ
ၿဖစ္ပါတယ္။
ဒါဆုိရင္ေတာ့ ခုနက ေရးခဲ့တဲ့ Bat File ေလးကို နားလည္ၿပီးေတာ့ Forr Loop ကို လည္း အေၿခခံအေနနဲ႔ နည္းနည္းေလး နားလည္သြားမယ္ထင္ပါတယ္။
For Loop က Parameter ေတြနဲ႔ တြဲၿပီးသံုးတတ္ရင္သံုးတတ္သလို Powerful ၿဖစ္ပါတယ္။
for Loop ကို ေလ့လာဖို႔ ေနာက္ထပ္ဥပမာတစ္ခုေလာက္လုပ္ၾကည့္ရေအာင္။ နည္းနည္း ခက္ေတာ့ခက္မယ္ဗ်. ဘာလို႔လည္း ဆိုေတာ့ က်ေနာ္ အေပၚမွာ ေရးၿပဖို႔
က်န္ခဲ့တာေလးေတြရိွေနလို႔ပါ။ က်ေနာ္ Parameter ကို define လုပ္တာနဲ႔
Parameter ေတြက ဘယ္လုိ အလုပ္လုပ္တယ္ဆုိတာ မေၿပာခဲ့ရလုိ႔ပါ။ ေအာက္က
ဟာေလးကို Notepad မွာ ေရးၾကည့္လိုက္ပါ။
@echo off
echo
echo I am going to delete the following files:
echo %1 %2
echo.
echo Press Ctrl+C to Abort process
pause
for %%a IN(%1 %2) do del %%a
echo Killed Files. Mission Accomplished.
ေရးၿပီးၿပီဆုိရင္ေတာ့ သူ႔ကို testfor.bat နဲ႔ Save လုိက္ပါ။ ၿပီးရင္ ဒီတုိင္းထားပါ။ Program ကို မ Run လုိက္ပါနဲ႔။
Start>>Run>>cmd>> ထဲေရာက္သြားရင္ ခုနက က်ေနာ္တုိ႔ ေရးခဲ့တဲ့ testfor.bat ရဲ႕ လမ္းေၾကာင္းကို ေၿပာင္းလိုက္ပါ။ Path ေၿပာင္းတာေတာ့ က်ေနာ္လည္း
အေသးစိတ္မေၿပာၿပေတာ့ဘူးေနာ္။ cd Command နဲ႔ ေၿပာင္းတယ္ဆိုတာ အားလုံး
သိၿပီသားၿဖစ္မွာပါ။
အဲဒီ့ လမ္းေၾကာင္းကို ေၿပာင္းၿပီးရင္ေတာ့ ခုနက save ခဲ့တဲ့ testfor.bat ကို ေခၚလိုက္ပါ ၿပီးရင္ ဖ်က္ခ်င္တဲ့ file name
ကို အဲဒီ့ေနာက္မွာထပ္ေရးပါ။
စာနဲ႔ေရးတာ နားမလည္မွာဆုိးလို႔ က်ေနာ္ ဥပမာ ေရးၿပလိုက္ပါမယ္။
cmd ထဲေရာက္ေနၿပီး လမ္းေၾကာင္းလည္းေၿပာင္းၿပီးသားဆုိပါက
မိမိ path လမ္းေၾကာင္း>testfor.bat a.txt b.txt
အဲဒီ့မွာ a.txt နဲ႔ b.txt ဆုိတာက က်ေနာ္ဖ်က္ခ်င္တဲ့ ဖုိင္နာမည္ပါ။ အဲဒီ့ေနရာမွာ ၾကိဳက္တာထားလို႔ရပါတယ္။ *.txt , *.pdf အစရိွသၿဖင့္ေပါ့။ အဲလိုရုိက္ၿပီး enter ေခါက္လုိက္ရင္ေတာ့
အဲဒီ့ file Name ေတြပ်က္သြားမွာ ၿဖစ္ပါတယ္။ အေပၚကဥပမာေလးကေတာ့ For ကို
Parameter ေတြနဲ႔ တြဲသံုးၿပီးေတာ့ ဘယ္ေလာက္ အသံုးတဲ့တယ္ဆိုတာကို
သက္ေသၿပလုိက္တာပါ။
စာဖတ္သူတို႔ အဆင္ေၿပရင္ေၿပသလို ဥာဏ္ရိွရင္ ရိွသလို ခ်ဲ႕ထြင္ေရးနုိင္ၾကပါတယ္။ကဲဒါဆုိ က်ေနာ္ ခုနက ဥပမာ ရဲ႕ အလုပ္လုပ္ပံု
လုပ္နည္းကို ရွင္းၿပၿပီးၿပီ ၿဖစ္လို႔ Code ေတြကို နည္းနည္း
ၿပန္ရွင္းၿပပါမယ္။ မွတ္မိသြားေအာင္ေပါ့။
4 လိုင္းေၿမာက္က echo %1 %2 ဆုိတာကေတာ့ For ထဲမွာ ေၾကၿငာထားတဲ့ a ဆိုတဲ့ Variable ထဲမွာ၇ိွမယ့္ %1 နဲ႔ %2 ထဲက Variable ကို ရိုက္ထုတ္တာပါ။
ထုိသုိ႔ ၿပဳလုပ္ၿခင္းအားၿဖင့္ က်ေနာ္တုိ႔ဟာ ခုန Run ၾကည့္တုန္းလိုမ်ိဳး I am going to delete the
following files: ဆိုတဲ့ စာသားေအာက္မွာ က်ေနာ္တုိ႔ ရိုက္ထည့္လိုက္တဲ့
a.txt နဲ႔ b.txt ကို ေဖာ္ၿပေပးတာပါ။ OK?
၅ လုိင္းေၿမာက္မွာေတာ့ ပံုမွန္ echo ေနာက္မွာ . ေလးကို ထည့္ထားတာပါ။ ထုိသို႔ထည့္ထားၿခင္းအားၿဖင့္ တစ္လိုင္းၿခားတဲ့ ကိစၥကို လုပ္ေဆာင္ေပးပါတယ္။ (အရင္က မေၿပာခဲ့ရလုိ႔ အခုမွ
ၿဖည့္ေၿပာေပးတာပါ)
ဒါဆုိ for looping ကို ေရးထားတဲ့ ေနရာကို ရွင္းၿပေပးပါ့မယ္။
ဖတ္ရ ခက္မွာ စိုးလုိ႔ အေပၚကဥပမာထဲက For Loop အတြက္ Code ကို ၿပန္ေရးေပးလိုက္ပါတယ္။
for %%a IN(%1 %2) do del %%a
ဒါဆုိရင္ Program ေလးလဲ Run ၿပီးသားဆုိေတာ့ For Loop ထဲက လုပ္ငန္းေတြကုိနည္းနည္းေတာ့ သေဘာေပါက္ေနၿပီထင္ပါတယ္။
ပိုၿပီးေတာ့ နားလည္သြားေအာင္ က်ေနာ္ နည္းနည္း လွ်ာရွည္လိုက္ပါ့မယ္။
%%a ဆုိၿပီးေတာ့ a ဆုိတဲ့ Variable ေလးတစ္ခုေၾကၿငာပါတယ္။
အဲဒီ့ a ထဲကို IN(%1 %2) ဆုိၿပီးေတာ့ a ထဲကို 1 နဲ႔ 2 ကို ထည့္ထား သတ္မွတ္ထားပါတယ္။
ၿပီးေတာ့ do ဆုိၿပီး ခုနက a ထဲမွာ ေရာက္ေနမယ့္ တန္ဖုိး ၂ ခုကို del ဆုိတဲ့ command နဲ႔ ဖ်က္လုိက္ပါတယ္။
ဒီေလာက္ဆုိ နားလည္မယ္ထင္ပါတယ္။ For နဲ႔ ပါတ္သက္လို႔ က်ေနာ္ ရွင္းၿပနုိင္တာ ဒီေလာက္ပါဘဲ။ ပိုမိုေကာင္းမြန္တဲ့ Looping ေတြနဲ႔ ၿပီးၿပည့္စံုေသာ bat
တစ္ခုကို ဖန္တီးၿပီး PC ကို အၿပည့္အ၀ အႏာၱရာယ္ အၾကီးအက်ယ္ေပးလို႔ရတဲ့
အတြက္ အမ်ားၾကီးမရွင္းၿပေတာ့ပါဘူး။
IF ကို Coding ထဲမွာ
ထည့္သံုးခဲ့ဖူးေပမယ့္ က်ေနာ္ အေသးစိတ္ရွင္းၿပၿခင္းမရိွခဲ့ပါဘူး။
အဲဒီ့အတြက္ If နဲ႔ ပါတ္သက္ၿပီးက်ယ္က်ယ္ၿပန္႔ၿပန္႔သိနုိင္ေအာင္ အခု
ရွင္းၿပေပးပါ့မယ္။ အရင္ရက္ေတြက က်ေနာ္ေရးခဲ့တဲ့ ဟာေတြက Ref မရိွေပမယ့္
ဒီတစ္ခါေရးတဲ့ဟာကေတာ့ က်ေနာ္ကိုယ္တုိင္လည္း ၿပန္လည္စိတ္ပါလာၿပီး IF နဲ႔
ပါတ္သက္လို႔ အေသးစိတ္ေရးေပးခ်င္တဲ့ စိတ္လည္း ရိွတာေၾကာင့္ Google
ကေနရွာေဖြၿပီး Ref လုပ္ေပးလိုက္ပါတယ္။
က်ေနာ္တုိ႔ရဲ႕ Batch File Programs ေတြကို Intel ရိွေစဖုိ႔နဲ႔ ပိုမို အသံုးတည့္ေစလိုတဲ့ အခါေတြမွာ If statement ေတြကိုအသံုးခ်နုိင္ပါတယ္။
သူ႔ကို အသံုးခ်ၿခင္းအားၿဖင့္ က်ေနာ္တုိ႔ သတ္မွတ္ထားတဲ့ parameter ေတြ Variable
ေတြကို စစ္ၿပီးေတာ့ သက္ဆုိင္ရာ Task တစ္ခုစီကို အလုပ္လုပ္ေစတာမ်ိဳးေတြ
ကိုလုပ္နုိင္ပါတယ္။ ဒါတင္မကေသးပါဘူး သူက က်ေနာ္တို႔လိုခ်င္တဲ့ File ကို
လိုခ်င္တဲ့ေနရာမွာ ရိွမရိွကိုပါ စစ္ေပးနုိင္ပါေသးတယ္။
ၿခံဳငံုေၿပာရမယ္ဆုိရင္ေတာ့ If ကို Variable ေတြကို စစ္တဲ့ အခါမွာ
သံုးတယ္လို႔ အၾကမ္းဖ်င္းမွတ္နုိင္ပါတယ္။
IF ၿဖင့္ File ရိွမရွိကုိစစ္ေဆးၿခင္း
File တစ္ခုကို က်ေနာ္တုိ႔ လုိခ်င္တဲ့ ေနရာမွာ ရိွမရိွကို စစ္ခ်င္တယ္ဆုိရင္ အသံုးၿပဳေလ့ရိွတယ္ If ရဲ႕ ေရးပံုေရးနည္းကေတာ့…
IF EXIST FILENAME Command
က်ေနာ့္ ေရးသားပံုအတုိင္း If ရဲ႕ ေရးပံုေရးနည္းကို နားလည္လြယ္ေစဖို႔ ဥပမာနဲ႔ ရွင္းၿပေပးပါ့မယ္။ ေအာက္မွာ ေပးထားတဲ့ Code ကို Notepad ထဲမွာ ကူးထည့္လိုက္ပါ….
IF EXIST c:\autoexec.bat ECHO The File Exists at that place
အေပၚက Code ရဲ႕ အလုပ္လုပ္မယ့္ပံုစံကို ေလ့လာၾကည့္ရေအာင္…
သူက c:\autoexec.bat ဆုိတဲ့ file ရိွမရိွကို စစ္ပါမယ္ ၊ အကယ္လို႔ရိွခဲ့မယ္ဆုိရင္ေတာ့ echo နဲ႔ ‘The File Exists at that place’
ဆုိၿပီးေတာ့ ေဖာ္ၿပေပးမွာၿဖစ္ၿပီးေတာ့ ၊ မရွိခဲ့ဘူးဆုိရင္ေတာ့
ဘာအလုပ္မွဆက္လုပ္မွာ မဟုတ္ပါဘူး။
Code ကို မရွင္းၿပေတာ့ ဘဲ Program အလုပ္လုပ္မယ့္ ပံုစံကို ရွင္းၿပလိုက္တာ နားလည္လြယ္မယ္ထင္လို႔ က်ေနာ္ ပံုစံေၿပာင္းၿပီးရွင္းၿပရတာပါ။ မေန႔က For Loop ကို က်ေနာ္ code ေတြကိုပါ
ရွင္းၿပတာ ၊ က်ေနာ့္သူငယ္ခ်င္းေတြက နားမလည္ဘူးဆုိလို႔ ဒီေန႔လည္း
အဲလိုထပ္မၿဖစ္ရေလေအာင္ Program Flow ကို ဘဲရွင္းၿပသြားတာပါ။ For Loop ကို
ေတာ့ အခြင့္အခါသင့္လွ်င္ထပ္ရွင္းၿပေပးပါ့မယ္။
အခုက်ေနာ္တုိ႔ အေပၚက ဥပမာကို ၿပန္ၾကည့္လုိက္ပါ။ အကယ္လို႔ File သာ မရွိေတာ့ရင္ သူ အလုပ္မလုပ္ေတာ့ပါဘူး။ အဲဒီ့လုိ မၿဖစ္ေစဖို႔အတြက္ က်ေနာ္တုိ႔ဟာ else ပံုစံမ်ိဳး
အေရးအသားတစ္ခုထည့္ေရးလို႔ရပါတယ္။ စဥ္းစားပံုကေတာ့ အကယ္လုိ႔မ်ား က်ေနာ္တုိ႔
လိုခ်င္တဲ့ file ရိွမယ္ဆုိရင္ အလုပ္တစ္ခု လုပ္ခိုင္းၿပီးေတာ့ ၊
မရိွခဲ့ဘူးဆုိရင္ ေနာက္အလုပ္တစ္ခုလုပ္ပါ ဆိုတာကို အရင္ရက္က
က်ေနာ္ေရးေပးဖူးတဲ့ goto command ကို အသံုးၿပဳသြားမွာပါ။
ဘယ္လိုေရးၾကမယ္ဆုိတာ နားလည္လြယ္ေစဖို႔ ေအာက္မွာ ရိွတဲ့ ဥပမာေလးကို ေလ့လာၾကည့္ရေအာင္….@echo off
IF EXIST C:\syko.txt goto SYKO
goto end
:SYKO
echo SYKO exists
pause
:end
echo SYKO doesn’t exist
pause
အေပၚက ဥပမာကို Run လိုက္မယ္ဆုိရင္ အလုပ္လုပ္မယ့္ ပံုစံကေတာ့….
အကယ္လို႔ C:\syko.txt သာရိွမယ္ဆုိရင္ က်ေနာ္တုိ႔ဟာ goto ကို သံုးၿပီးေတာ့ SYKO ဆုိတဲ့ အပိုင္းတစ္ခုဆီလႊဲထားခဲ့ပါတယ္။ ဒါဆုိရင္ File သာရွိရင္ အဲဒီ့
SYKO ဆိုတာကို လုပ္မွာပါ။
အဲ.. အကယ္လို႔မ်ား file သာမရိွခဲ့ဘူးဆုိရင္ စစခ်င္းေရးခဲ့တဲ့ Program မွာ လုိရပ္သြားမွာဆုိးတဲ့ အတြက္ goto end
ဆုိၿပီးေတာ့ ေနာက္တစ္လိုင္းစစ္ခဲ့ပါတယ္။ ထိုသို႔ စစ္ၿခင္းအားၿဖင့္ File
မရိွေတာ့ရင္ Program ရပ္သြားခ်င္းမွ ေရွာင္ဖယ္နုိင္မွာၿဖစ္ၿပီးေတာ့
Program က ေနာက္တစ္လိုင္းကို အလုိလိုဆင္းဖတ္ၿပီးေတာ့ end ဆုိတဲ့
အပုိင္းကို ေရာက္သြားမွာပါ။ ဒါဆိုရင္ User အတြက္လည္း doesn’t exist ဆုိတဲ့
message ကို ၿပန္လည္ၿမင္ေစမွာၿဖစ္ပါတယ္။
ဒီေလာက္ဆုိရင္ IF နဲ႔ ဖိုင္ရိွတာကို စစ္ပံုစစ္နည္းနားလည္ၿပီလုိ႔ ထင္ပါတယ္။
ဆက္လက္ၿပီးေတာ့ File မရိွတာကို စစ္ၾကည့္ၾကရေအာင္
ေရးသားပံုကေတာ့ ခုနကနဲ႔ တူတူပါဘဲ။
IF NOT EXIST FILENAME Command
ဥပမာေလးေရးၾကည့္ရေအာင္
IF NOT EXIST c:\syko.txt ECHO It doesn’t Exist
Code အလုပ္လုပ္ပံုကို အေပၚမွာရိွတဲ့ exist နဲ႔ တူတဲ့အတြက္ထပ္မရွင္းၿပေတာ့ပါဘူး။
ဒီေလာက္ဆုိရင္ NOT ထည့္သံုးတာလည္း သိေလာက္ၿပီလုိ႔ထင္ပါတယ္။
****************************************************************************
သတိၿပဳရန္၊၊ ၊၊ က်ေနာ္တုိ႔ဟာ တစ္ခ်ိန္တည္းမွာပင္ IF ကို အခါခါသံုးၿပီးေတာ့ File ရိွမရိွစစ္လုိ႔ရတယ္ဆုိတာကို သိေစလုိပါတယ္။ အသံုးၿပဳလို႔ရေအာင္
တစ္ေၾကာင္းေရးၿပပါ့မယ္။
>>> IF EXIST c:\autoexec.bat IF EXIST c:\autoexec.bak ECHO Both Exist br/> ****************************************************************************
အေပၚမွာက်ေနာ္ ေရးၿပခဲ့တာေတြက File ရိွမရိွကိုဘဲ စစ္လုိ႔ အဆင္ေၿပတာပါ။ အကယ္လို႔မ်ား က်ေနာ္တုိ႔ဟာ directories တစ္ခုရွိမရိွကို စစ္ခ်င္ၿပီဆုိရင္ေတာ့ အခက္ေတြ႔ပါၿပီ။ အဲဒီ့လို
အေၿခအေနမ်ိဳးမွာေတာ့ NULL ဆုိတာေလးက အသံုးတည့္ၿပီေပါ့ဗ်ာ။ NULL ဆုိတာကေတာ့
ဘာမွမရိွတာပါ။
DOS ကနားလည္တာကေတာ့ Directory တစ္ခုမွာ NULL ဆုိတဲ့ Folder တစ္ခုရိွပါတယ္တဲ့။ (က်ေနာ္လည္းမသိဘူး Google ေၿပာတာ။ )
ဒါဆုိ က်ေနာ္တုိ႔ c:\windows ဆိုတာမ်ားရွိေလမလားလို႔
စစ္ေဆးၾကည့္ရေအာင္လားဗ်ာ။ အဲဒီ့လုိ စစ္ေဆးဖို႔ကေတာ့ လြယ္လြယ္ေလးပါ အေပၚမွာ
က်ေနာ္တုိ႔ ေရးခဲ့သလို IF EXIST ကို ၿဖည့္ေရးသြားရံုပါ။ ေအာက္က Code ကို
ၾကည့္လုိက္ပါ။
IF EXIST c:\windows\nul ECHO c:\windows exists
အဲဒီ့လိုနည္းမ်ိဳးနဲ႔ဘဲ Drive တစ္ခုဟာ ခြင့္ၿပဳထားတဲ့ Drive ဟုတ္မဟုတ္စစ္နုိင္ပါေသးတယ္။ ေအာက္က Code ကို ၾကည့္ၾကည့္ပါ။
IF EXIST c:\io.sys ECHO Drive c: is valid
ဒီေလာက္ဆုိရင္ File ရိွမရိွကို IF နဲ႔
စစ္ၿခင္းနဲ႔ ပတ္သက္လုိ႔ အားလုံး စံုသြားၿပီၿဖစ္လို႔ ေနာက္တစ္ခန္းမွာ User
ရိုက္လုိက္တဲ့ Parameter ေတြကို စစ္ၿပီးေတာ့ အလုပ္လုပ္သြားပံုကို
ရွင္းၿပပါ့မယ္။
IF နဲ႕ parameter ကို ဘယ္လုိ တုိက္ဆုိင္စစ္ေဆးမလဲဆုိတာကိုေတာ့ ေအာက္က if ရဲ႕ ေ၇းပံုေရးနည္း (syntax) ကို ၾကည့္ၾကည့္ေပးပါ။
IF [NOT] string1==string2 Command
အေပၚမွာေပးထားတဲ့ Code ကို ေအာက္ကဥပမာေလးနဲ႔ေလ့လာၾကည့္ရေအာင္။
@echo off
if %1==cp goto COPY
goto DEL
:COPY
Copy %2 C:\Users\Administrator\Desktop\
echo You have copied %2 to your desktop
goto :END
EL
Del %2
echo Delete Process Completed.
:END
ဒီ ဥပမာေလးကေတာ့ က်ေနာ္ ဟုိးအရင္ကစာအုပ္တစ္အုပ္ကေနေတြ႔ထားတာေလးပါ။ စာဖတ္သူ ပိုမုိနားလည္ေစဖို႔အတြက္ က်ေနာ္ ၿပန္ၿဖည့္ေရးထားပါတယ္။ သူေရးသြားတဲ့
ပံုစံေလးကေတာ္ေတာ္ ေကာင္းပါတယ္။ (အဲဒီ့စာအုပ္ထဲမွာကေရးသာေရးထားတယ္ Code
ကတုိကလည္းတုိေသးတယ္ ရွင္းကမရွင္းၿပထားဘူးဆုိေတာ့ ဘယ္လို ၿပန္ရွင္းရင္
အစ္ကိုတို႔ အစ္မတုိ႔ နားလည္မလဲဆုိတာကို စဥ္းစားလိုက္ရတာ က်ေနာ့္မွာ
ေတာ္ေတာ္ တုိင္ပတ္သြားေသးတယ္။ ခုေတာ့ အုိေကသြားပါၿပီ။ သူ႔မူရင္း Code
လုိလည္း တုိႏံွ႔ႏွံ႔ဟုတ္ေတာ့ဘူး။ နည္းနည္းရွည္သြားဘီ။ နားလည္ဖို႔လည္း
လြယ္သြားပါၿပီ။ )
ဒီ Forum ထဲမွာ code ကို ဒီအတိုင္းၾကည့္ရင္ေတာင္ နားလည္ေနတဲ့ အဆင့္ကို
ေရာက္ေနတဲ့သူေတြလည္း ရိွနုိင္ပါတယ္။ နားမလည္ေသးတဲ့သူေတြအတြက္လည္း
က်ေနာ္ရွင္းၿပေပးပါ့မယ္။ နားလည္ၿပီးသားဆုိရင္လည္း က်ေနာ္ရွင္းတာ
လုိသြားရင္ ၿဖည့္ေၿပာေပးၾကပါဦး။
ဒီဥပမာမွာဆုိရင္ က်ေနာ္တို႔ဟာ parameter ၂ ခုကို သံုးသြားပါတယ္။ ပထမ parameter ကို သံုးထားတဲ့ေနရာကေတာ့ IF statement နဲ႔ cp ဆုိတဲ့ parameter တစ္ခုကို %1 ဆုိတဲ့ user ဆီက ၀င္လာမယ့္ ေကာင္နဲ႔
တုိက္စစ္ပါတယ္။ အကယ္လို႔ တူတယ္ဆုိရင္ေတာ့ COPY ဆုိတဲ့ Function ဆီကို
သြားၿပီးေတာ့ copy အလုပ္ကို လုပ္မွာၿဖစ္ပါတယ္။ ဒါမွမဟုတ္ဘဲနဲ႔
မတူခဲ့ရင္ေတာ့ DEL ဆုိတဲ့ Function ဆီကို ေရာက္မွာ ၿဖစ္ပါတယ္။
ဒုတိယ parameter ကေတာ့ %2 ပါ။ %2 ကိုေတာ့ file name ကို လက္ခံရန္အတြက္
အသံုးၿပဳထားပါတယ္။ က်ေနာ္တုိ႔ဟာ 1st parameter မွာ cp မရိုက္ထည့္ဘဲ
တၿခားဟာသာ ၀င္လာခဲ့ရင္ေတာ့ DEL Function ဆီကို ေရာက္လာမွာၿဖစ္ၿပီးေတာ့ %2
ၿဖစ္တဲ့ က်ေနာ္တုိ႔ သတ္မွတ္ေပးမယ့္ file က ပ်က္သြားမွာၿဖစ္ပါတယ္။
အေပၚက ဥပမာေလးကို run ရင္ ဘယ္လို run ရတယ္ဆုိတာ ေၿပာၿပေပးပါ့မယ္။ က်ေနာ္ FOR Looping အေၾကာင္းရွင္းၿပခဲ့တုန္းက တစ္ခါ ဒီလုိ ပံုစံမ်ိဳးေရးေပးဖူးပါတယ္။
ေမ့သြားတဲ့ သူေတြ အတြက္ ၿပန္ရွင္းၿပေပးတာပါ။
—————————————————————————Program Run ပံု အဆင့္ဆင့္—————————————————————-
Desktop ေပၚမွာ Test ဆုိတဲ့ နာမည္နဲ႔ Folder အသ
ေလ့လာဖူးတာ အလြန္ၾကာခဲ့ၿပီၿဖစ္ပါတယ္။ ယခု ေလ့လာခ်င္ပါတယ္ဟုေၿပာေသာ
သူမ်ားရိွေသာေၾကာင့္သာ အခုလို အေၿခခံကအစ ေရးေပးၿဖစ္တာပါ။ အေၿခခံအက်ဆုံးနဲ႔
ကြန္ၿပဴတာစသံုးဖူးတဲ့ သူတစ္ေယာက္ပါ အဆင္ေၿပေအာင္တစ္ခါထဲေရးေပးၾကည့္ပါ့မယ္။
ဒါေပမယ့္ က်ေနာ္ မေလ့လာေတာ့ဘဲ ပစ္ထားတဲ့ ဘာသာရပ္တစ္ခုၿဖစ္ၿပီး အခုမွ
ၿပန္ကိုင္လိုက္သလိုၿဖစ္ေနတာေၾကာင့္ မၿပည့္စံုတာမ်ားလည္း ရိွပါလိမ့္မယ္။
က်ေနာ့္ေခါင္းထဲမွာ မွတ္မိတာကိုဘဲ ၿပန္ခ်ေရးမွာၿဖစ္ပါတယ္။
အဆင္မေၿပမႈတစ္စံုတစ္ရာရိွခဲ့ရင္ ခြင့္လႊတ္ေပးၾကပါ။ အားလုံးကို တစ္ခါတည္း
အဓိပၸါယ္ေတြ ေၿပာသြားမွာ မဟုတ္ဘဲနဲ႔ ဥပမာေလးေတြနဲ႔ အလ်င္းသင့္သလုိသာ
ရွင္းၿပီး တဆင့္ခ်င္းတက္သြားၾကည့္ပါ့မယ္။ က်ေနာ္လည္း
တစ္ခါမွမေရးခဲ့ဖူးေတာ့ ဘယ္က ဘယ္လို နားလည္ေအာင္
စရွင္းၿပီးေရးရမယ္မသိလုိ႔ပါ။
ကဲစၿပီး ေဆြးေႏြးၾကည့္ေပးပါ့မယ္။
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 ကို နားလည္သြားၿပီလို႔ထင္ပါတယ္။
အခု က်ေနာ္ ပထမဆုံး စေၿပာခ်င္တာကေတာ့ call နဲ႔ exit တုိ႔ အေၾကာင္းၿဖစ္ပါတယ္။
အရင္တေခါက္ကလိုဘဲ Notepad ထဲသြားၿပီးေတာ့ ေအာက္မွာ ရိွတဲ့ Code ေတြကို ရိုက္ထည့္လိုက္ပါ။
@echo off
echo WoW I know the basics of batch
call call.bat
pause
exit
ၿပီးရင္ေတာ့ Folder အသစ္တစ္ခုတည္ေဆာက္ၿပီး အဲဒါကို adv1.bat ဆုိတဲ့နာမည္နဲ႔ သိမ္းလိုက္ပါ။
ေနာက္တစ္ခါ Notepad ကို ၿပန္ဖြင့္ပါ။ ၿပီးရင္ ေအာက္မွာ ရိွတဲ့ Code ကို ထပ္ရိုက္ပါ။
@echo off
echo I Love *Y*
pause
ၿပီးရင္ေတာ့ ခုနက Save ထားတဲ့ adv1.bat နဲ႔ တူတူ Folder ထဲမွာ call.bat ဆုိတဲ့နာမည္နဲ႔ Save လုိက္ပါ။
ေနာက္တစ္ဆင့္အေနနဲ႔ ပထမေရးထားတဲ့ adv1.bat ဆုိတာကို Run လုိက္ပါ။
ေအာက္မွာ ၿပထားတဲ့ အတုိင္း Screen မွာ ေပၚလာပါလိမ့္မယ္။
WoW I know the basics of batch
I Love *Y*
Press any key to continue… (ၾကိဳက္တဲ့ Key တစ္ခ်က္ႏွိပ္လိုက္ပါ)
Press any key to continue… (ဒီစာေၾကာင္းေလး ေနာက္တစ္ခါထပ္ေပၚလာမွာပါ။ ေနာက္ထပ္ ၾကိဳက္တဲ့ Key ကို ႏွိပ္မွ Program က ထြက္သြားပါလိမ့္မယ္)
အဲဒါကို ၾကည့္ခ်င္းအားၿဖင့္ exit က ဘာအလုပ္လုပ္တယ္ဆုိတာ သိမွာပါေနာ္..
ေနာက္တစ္ခုအေနနဲ႔ call ပါ… call ဆုိတာကေတာ့ ေနာက္ထပ္ batch file တစ္ခုကို ေခၚသံုးတာပါ။
ဒီေလာက္ဆုိ call နဲ႔ exit အေၾကာင္းသိေလာက္ၿပီထင္ပါတယ္။
က်ေနာ္ေရးတာက အလြယ္အဆင့္ကေန အခက္အဆင့္ ကို သြားေနတာေတာ့ မဟုတ္ဘူးေနာ္။ က်ေနာ့္ မွာ ကိုးကားစရာစာအုပ္က မရိွေတာ့လို႔ ဟိုေရာက္ဒီေရာက္နဲ႔ က်ေနာ္ သတိရၿပီးေတာ့ သိေသးသမွ်ေတြေရးေပးေနတာပါ။ ဖတ္ရတာ
အခက္အခဲေတာ့ နည္းနည္းရိွမယ္လို႔ထင္တယ္။ နားလည္ ေပးမယ္လို႔ထင္ပါတယ္။
ဟုတ္ကဲ့ပါ အခု က်ေနာ္ ေရးေပးမွာကေတာ့ Windows Application တစ္ခုကို ဘယ္လို ေခၚ Run မလဲဆုိတာပါ
ေအာက္မွာေပးထားတဲ့ Code ကို Notepad မွာရိုက္ထည့္ၾကည့္ပါ့မယ္…
@echo off
echo I am testing to call Notepad.exe
start /MIN notepad
pause
အဲဒါကို save ၿပီးေတာ့ Run မယ္ဆုိရင္ေတာ့ ေအာက္မွာ ၿပထားတဲ့ အတုိင္းေပၚလာပါလိမ့္မယ္။
I am testing to call Notepad.exe
(အဲဒါလာၿပီးရင္ Notepad က minimized အေနအထားနဲ႔ ေပၚလာပါလိမ့္မယ္။ /MIN ေနရာမွာ /MAX လို႔ထားရင္ေတာ့ maximized အေနအထားနဲ႔ ေပၚမွာပါ)
Press any key to continue…
ေနာက္တစ္ဆင့္အေနနဲ႔ batfile ထဲကေန ထြက္ဖုိ႔ အခ်ိန္သတ္မွတ္ေပးၾကည့္ရေအာင္
ေအာက္မွာေပးထားတဲ့ Code ေလးေတြကို Notepad ထဲမွာေရးေပးပါ
@echo off
echo i am trying timeout
set wait=0
:pause1
set /a wait=%wait%+1
if %wait% leq 1000 goto pause1
echo IT WORKED!!!
pause
ဒီ Code ေတြကို နားမလည္ဘူးဆုိရင္ေတာ့ Copy Paste သာလုပ္ၿပီးေတာ့ Notepad ထဲကို ထည့္လိုက္ပါေတာ့။
က်ေနာ္ အေပၚမွာေရးဖူးတဲ့ နွစ္ခုထဲမွာ set အေၾကာင္း အနည္းငယ္ပါၿပီးေတာ့ if နဲ႔ condition စစ္တာလည္း ပါသလို
:pause1 လုိမ်ိဳး Function ခြဲေရးတာလည္း ဘာဆုိတာ ပါပါတယ္။ အဲဒီ့ေတာ့ ဒါကို နားမလည္ရင္လည္း အဲဒါေလးေတြ ၿပန္ၾကည့္လုိက္ရင္ အၾကမ္းဖ်င္းေတာ့
သေဘာေပါက္မွာပါ။
% ေတြ /a ေတြနဲ႔ က်န္တဲ့ နားမလည္တာေတြကို ခ်န္ထားခဲ့ပါ။ အကယ္လို႔ က်ေနာ္ အခ်ိန္ရရင္ Parameter ေတြ အေၾကာင္းကို
က်ယ္က်ယ္ၿပန္႔ၿပန္႔ ထပ္ေဆြးေႏြးေပးပါ့မယ္။ ခုေတာ့ ဒီတုိင္း
သေဘာေပါက္ရံုေလာက္ေလး ထားၿပီး အဲဒါေလးကို Save ၿပီးရင္ Run လိုက္ပါ။
ေအာက္မွာ ၿပထားတဲ့ အတိုင္းေပၚလာပါလိမ့္မယ္…
I am trying timeout
(ၿပီးရင္ေတာ့ စကၠန္႔ နည္းနည္းေလာက္ေစာင့္ရပါလိမ့္မယ္) (အဲဒါကေတာ့ :pause1 ထဲမွာ ေရးထားတဲ့ Code ေၾကာင့္ပါ။)(အဲဒါကို ေစာင့္ၿပီးရင္ေတာ့
ေနာက္တစ္ေၾကာင္းလာပါလိမ့္မယ္)
IT WORKED!!!
Press any key to continue…
ဒါဆုိရင္ေတာ့ စကၠန္႔ ၿဖစ္ၿဖစ္ မိနစ္ၿဖစ္ၿဖစ္ သတ္မွတ္ၿပီးေတာ့ batch file run တာကို ရပ္ၿခင္းအား က်ေနာ္တို႔ စမ္းသတ္ၿပီးပါၿပီ။ ဘယ္လို အလုပ္လုပ္တယ္ဆုိတာလည္း
နားလည္မယ္လို႔ထင္ပါတယ္။
က်ေနာ္ ေနာက္ထပ္ တစ္ဆင့္အေနနဲ႔ TIME ဆုိတဲ့ Command အေၾကာင္းကို ရွင္းၿပေပးပါ့မယ္
ေအာက္မွာ ေပးထားတဲ့ Code ေတြကို Notepad ထဲမွာ ေရးလုိက္ပါ…
@echo off
echo Hello…. What time it is!!!
TIME 12:00
echo oHH it is 12:00
pause
အဲဒါကို Save ၿပီး Run မယ္ဆုိရင္ေတာ့ ေအာက္မွာ ၿပထားသလို ၿမင္ရပါလိမ့္မယ္…
Hello…. What time it is!!!
oHH it is 12:00
ဒါဆုိရင္ TIME က ဘာအလုပ္လုပ္လည္း ဆုိတာ သိၿပီလုိ႔ထင္ပါတယ္။ စက္ရဲ႕ အခ်ိန္ကို ေၿပာင္းေပးတာပါ။
ေနာက္တစ္ဆင့္အေနနဲ႔ က်ေနာ္တို႔ DOS ထဲမွာ ၿပမယ့္ စာသားေတြနဲ႔ ေနာက္ခံေတြ ကို အေရာင္ေလးေတြနဲ႔ အလွဆင္ၾကည့္ၾကပါမယ္။
ေအာက္မွာ ေပးထားတဲ့ Code ေတြကို Notepad ထဲကူးၿပီး Save ၿပီး Run လိုက္ပါ။
@echo off
echo I am trying the colors
pause
color 04
echo testing
pause
color f
echo again
pause
color 4f
echo DONE
pause
Run လုိက္ရင္ ဘယ္လိုေဖာ္ၿပတယ္ဆုိတာေတာ့ ကိုယ့္ဟာကိုယ္ လုပ္ၾကည့္လိုက္ပါ။ က်ေနာ္ Code ေတြကို ဘဲရွင္းၿပေပးပါေတာ့မယ္။
color ဆုိတာကေတာ့ အေရာင္သတ္မွတ္တယ္ဆုိတာ လူတိုင္း သိပါလိမ့္မယ္။ သူ႔ေနာက္မွာ ထည့္တဲ့ Code ေတြကို ရွင္းၿပပါ့မယ္။
04= background black နဲ႔ font ကို red ထားတာပါ
f = font ကို white ထားတာပါ
4f = background red နဲ႔ f ကို white ထားတာပါ
ပိုၿပီး အေသးစိတ္သိခ်င္ရင္ေတာ့ Run>>cmd>>color /? ဆုိၿပီးရိုက္လိုက္ပါ။
0=balck
1=blue
2=green
3=aqua
4=red
5=purple
6=yellow
7=white
8=gray
9=light blue
a=light green
b=light aqua
c=light red
d=light purple
e=light yellow
f=bright white
အဲဒီ့လုိေဖာ္ၿပပါလိမ့္မယ္။ အဲဒါေတြကို ခုနက က်ေနာ္တို႔ သံုးသလိုမ်ိဳး color 9f စသည္ၿဖင့္ တြဲသံုးနုိင္ပါတယ္။
ေရွ႕မွာထားတဲ့ ဟာက Back Color ၿဖစ္ၿပီးေတာ့ ေနာက္ကဟာက Font Color ၿဖစ္ပါတယ္။
ဒီေလာက္ဆုိရင္ေတာ့ Color ေတြ အေၾကာင္းသိနုိင္ပါၿပီ။ ဥာဏ္ရိွသလို ခ်ဲ႕ထြင္အသံုးခ် သြားနုိင္ပါတယ္။
အခုေနာက္တစ္ဆင့္အေနနဲ႔ Title ေၿပာင္းတာကို ေၿပာၿပေပးပါ့မယ္
ေအာက္က Code ေတြကို Notepad ထဲမွာေရးၿပီး Save လုိက္ပါ။
@echo off
title Myanmar IT Resource
echo Trying to change the title
pause
အဲဒါကို Run လုိက္ရင္ေတာ့ Title Bar မွာ Myanmar IT Resource ဆုိၿပီးေဖာ္ၿပပါလိမ့္မယ္
ေနာက္တစ္ဆင့္ အေနနဲ႔ Shutdown နဲ႔ Restart ကို စမ္းၾကည့္ၾကပါမယ္။
@echo off
start C:\Windows\RUNDLL.EXE user.exe,exitwindowsexec
exit
အဲဒီ့ အေပၚကေကာင္ေလးကို save ၿပီး Run မယ္ဆုိရင္ေတာ့ Restart က်သြားပါလိမ့္မယ္။
@echo off
start C:\Windows\RUNDLL32.EXE user,exitwindows
exit
အေပၚကဟာေလးကုိ Run ရင္ေတာ့ Shutdown ပါ.
ေနာက္ထပ္ နည္းေတြလည္း ရိွပါေသးတယ္။ တၿခားနည္းေတြက လူတုိင္းသိၿပီးသားေတြမို႔လုိ႔ ဒီနည္းေလးကို ေဖာ္ၿပေပးလိုက္တာပါ။ code
ေတြကေတာ့ ရွင္းရွင္းလင္းလင္းေတြ မို႔လုိ႔ လူတုိင္းနားလည္မယ္ထင္လို႔ ထပ္
မရွင္းၿပေတာ့ဘူးေနာ္။ နားမလည္ေလာက္စရာလည္း မပါဘူးလို႔ထင္ပါတယ္။
ေနာ္တုိ႔ For Loop အေၾကာင္းေလး စလုိက္ရေအာင္
သူ႔ကို ေရးမယ္ဆုိရင္ ေရးပံုေရးနည္းကေတာ့
FOR %%PARAMETER IN(set) DO command
For Loop ရဲ႕ Syntax ကိုေတြ႔လို႔ စိတ္မညစ္သြားပါနဲ႔။ က်ေနာ္ အတတ္နုိင္ဆုံး နားလည္လြယ္ေအာင္ေရးေပးပါ့မယ္။
က်ေနာ့္ တုန္းက ဆုိရင္ ဒီ Looping အပိုင္းလည္း ေရာက္ေရာ သင္ေပးမယ့္သူလည္း မရိွ ၊ Google မွာရွာေတာ့ လည္း အၿပည့္အစံုမရနဲ႔ ေတာ္ေတာ္ ဒုကၡေရာက္ခဲ့ရတာ။
အခုေတာ့ က်ေနာ္လည္း နားလည္သင့္သေလာက္ နားလည္ ခဲ့ၿပီးၿပီမို႔ မွတ္မိသေလာက္
ၿပန္လည္မွ်ေ၀တာပါ။
အစ္ကို တုိ႔ ဒီအပိုင္းမွာ ဖတ္ရတာ နားမလည္ေတာ့ လုိ႔ စိတ္ညစ္ၿပီးေတာ့ Bat ကို မေလ့လာေတာ့တာ မ်ိဳးေတာ့ မလုပ္ပါနဲ႔ လို႔
ေတာင္းဆုိခ်င္ပါတယ္။ က်ေနာ့္တုန္းကလည္း အဲလို စိတ္မ်ိဳးၿဖစ္ဖူးလို႔ပါ။
နားမလည္ရင္ က်ေနာ့္ကို ေမးပါ။ က်ေနာ္မသိရင္လည္း က်ေနာ့္ထက္ေတာ္တဲ့
တတ္တဲ့သူေတြကို ၿပန္ေမးေပးပါ့မယ္။
အတတ္နုိင္ဆုံး နားလည္ေအာင္ေရးေပးမွာ ၿဖစ္လို႔ ေသခ်ာလိုက္လုပ္ေပးပါ။
ကဲဒါဆုိရင္ က်ေနာ့္ ေရးနည္း ထုံးစံအတုိင္း ေအာက္က ဥပမာေလးနဲ႔ စလုိက္ရေအာင္
@echo off
cls
for %%A in (abc,def,xyz) do echo %%A
အဲဒါေလးရဲ႕ Code ေတြကို ရွင္းၿပပါ့မယ္။ cls ကေတာ့ သိၿပီးသားၿဖစ္မွာပါ။
For Loop ထဲမွာ Variable တစ္ခုၿဖစ္တဲ့ %%A ကို ေၾကၿငာပါတယ္။ ၿပီးေတာ့ သူ႔ထဲကို မတူညီတဲ့ Value ေတြကို (abc,def,xyz) ဆုိၿပီေတာ့ ကြင္းထဲမွာၾကိဳထည့္ထားပါတယ္။ အဲဒီ့
ကြင္းထဲကေကာင္ေတြကို ေတာ့ predefined set value လုိ႔ေခၚပါတယ္။ အဲဒါက
Looping တစ္ခါပတ္တုိင္း တစ္ခါသတ္မွတ္ထားမွာပါ။
ေနာက္ဆုံးက echo %%A ဆုိတာနဲ႔ For Loop က Variable ရဲ႕ တန္ဖိုးကို အသစ္ေၿပာင္းထည့္ပါတယ္။
%%A ဆုိတာကေတာ့ Variable တစ္ခုၿဖစ္ၿပီး သူက Looping တစ္ခါပတ္တုိင္း မတူညီတဲ့ Values ေတြ ကို predefined set ထဲက တန္ဖုိးေတြနဲ႔ လက္ခံပါတယ္။
0 ကေန 9 ကလြဲရင္ %% ေနာက္မွာ ၾကိဳက္တဲ့ character တစ္လုံးစီကို သံုးႏိုင္ပါတယ္။
IN(abc,def,xyz) ဆုိတာကေတာ့ For Loop လုပ္ေဆာင္မယ့္ list တစ္မ်ိဳးၿဖစ္ပါတယ္။
က်ေနာ္တို႔ Program က Looping တစ္ခါပတ္တုိင္းမွာ Variable ၿဖစ္တဲ့ %%A ထဲကို () ကေန အမ်ိဳးမ်ိဳးေသာ တန္ဖိုးေတြထည့္သြင္းနုိင္ပါတယ္။
() ထဲက တန္ဖိုးေတြကို ေတာ့ comma,colon ေတြနဲ႔ space bar စတာေတြနဲ႔ ပိုင္းၿခားနုိင္ပါတယ္ဗ်ာ။
() ထဲက တန္ဖုိးမကုန္မခ်င္း For Loop ကအလုပ္လုပ္ေနေစပါတယ္။
DO ကေတာ့ Looping တစ္ခါပတ္ တုိင္း ဘာအလုပ္လုပ္ခ်င္တယ္ဆုိတာေၿပာတာပါ။
ခုနက က်ေနာ္တုိ႔ ေရးခဲ့တဲ့ Program မွာဆုိရင္ေတာ့ ECHO %%A နဲ႔ အေၿဖကို ရိုက္ထုတ္ထားပါတယ္။
ထုိသို႔ ရိုက္ထုတ္ထားခ်င္းအားၿဖင့္ Loop တစ္ခါပတ္တုိင္း abc ဆုိတဲ့ Variable A ထဲက တန္ဖိုးကို Looping အတြက္ Do သံုးၿပီး Echo နဲ႔ အေၿဖကို
User ကို ၿပသေပးပါတယ္။
က်ေနာ္ စာနဲ႔ ေၿပာတာ နားမလည္ရင္ ခုနက Program ကို Run ၿပီးေတာ့ ၾကည့္လုိက္ပါ။ ေအာက္ကေပးထားတဲ့ အေၿဖအတုိင္းရပါလိမ့္မယ္။
abc
def
xyz
အဲလို တစ္ခုခ်င္းစီ Looping အတုိင္းထြက္လာမွာပါ။ Loop ၃ ခါပတ္ခဲ့ပါတယ္။ အေၿဖကို do နဲ႔ echo သံုးၿပီးေတာ့ ၃ခါရိုက္ထုတ္ပါတယ္။ abc က A ထဲမွာ ပထမအၾကိမ္ Loop
အတြက္ရိွမွာ ၿဖစ္ၿပီးေတာ့ ၊ def က ဒုတိယ loop ၊ xyz ကေတာ့ တတိယ loop မွာ
ၿဖစ္ပါတယ္။
ဒါဆုိရင္ေတာ့ ခုနက ေရးခဲ့တဲ့ Bat File ေလးကို နားလည္ၿပီးေတာ့ Forr Loop ကို လည္း အေၿခခံအေနနဲ႔ နည္းနည္းေလး နားလည္သြားမယ္ထင္ပါတယ္။
For Loop က Parameter ေတြနဲ႔ တြဲၿပီးသံုးတတ္ရင္သံုးတတ္သလို Powerful ၿဖစ္ပါတယ္။
for Loop ကို ေလ့လာဖို႔ ေနာက္ထပ္ဥပမာတစ္ခုေလာက္လုပ္ၾကည့္ရေအာင္။ နည္းနည္း ခက္ေတာ့ခက္မယ္ဗ်. ဘာလို႔လည္း ဆိုေတာ့ က်ေနာ္ အေပၚမွာ ေရးၿပဖို႔
က်န္ခဲ့တာေလးေတြရိွေနလို႔ပါ။ က်ေနာ္ Parameter ကို define လုပ္တာနဲ႔
Parameter ေတြက ဘယ္လုိ အလုပ္လုပ္တယ္ဆုိတာ မေၿပာခဲ့ရလုိ႔ပါ။ ေအာက္က
ဟာေလးကို Notepad မွာ ေရးၾကည့္လိုက္ပါ။
@echo off
echo
echo I am going to delete the following files:
echo %1 %2
echo.
echo Press Ctrl+C to Abort process
pause
for %%a IN(%1 %2) do del %%a
echo Killed Files. Mission Accomplished.
ေရးၿပီးၿပီဆုိရင္ေတာ့ သူ႔ကို testfor.bat နဲ႔ Save လုိက္ပါ။ ၿပီးရင္ ဒီတုိင္းထားပါ။ Program ကို မ Run လုိက္ပါနဲ႔။
Start>>Run>>cmd>> ထဲေရာက္သြားရင္ ခုနက က်ေနာ္တုိ႔ ေရးခဲ့တဲ့ testfor.bat ရဲ႕ လမ္းေၾကာင္းကို ေၿပာင္းလိုက္ပါ။ Path ေၿပာင္းတာေတာ့ က်ေနာ္လည္း
အေသးစိတ္မေၿပာၿပေတာ့ဘူးေနာ္။ cd Command နဲ႔ ေၿပာင္းတယ္ဆိုတာ အားလုံး
သိၿပီသားၿဖစ္မွာပါ။
အဲဒီ့ လမ္းေၾကာင္းကို ေၿပာင္းၿပီးရင္ေတာ့ ခုနက save ခဲ့တဲ့ testfor.bat ကို ေခၚလိုက္ပါ ၿပီးရင္ ဖ်က္ခ်င္တဲ့ file name
ကို အဲဒီ့ေနာက္မွာထပ္ေရးပါ။
စာနဲ႔ေရးတာ နားမလည္မွာဆုိးလို႔ က်ေနာ္ ဥပမာ ေရးၿပလိုက္ပါမယ္။
cmd ထဲေရာက္ေနၿပီး လမ္းေၾကာင္းလည္းေၿပာင္းၿပီးသားဆုိပါက
မိမိ path လမ္းေၾကာင္း>testfor.bat a.txt b.txt
အဲဒီ့မွာ a.txt နဲ႔ b.txt ဆုိတာက က်ေနာ္ဖ်က္ခ်င္တဲ့ ဖုိင္နာမည္ပါ။ အဲဒီ့ေနရာမွာ ၾကိဳက္တာထားလို႔ရပါတယ္။ *.txt , *.pdf အစရိွသၿဖင့္ေပါ့။ အဲလိုရုိက္ၿပီး enter ေခါက္လုိက္ရင္ေတာ့
အဲဒီ့ file Name ေတြပ်က္သြားမွာ ၿဖစ္ပါတယ္။ အေပၚကဥပမာေလးကေတာ့ For ကို
Parameter ေတြနဲ႔ တြဲသံုးၿပီးေတာ့ ဘယ္ေလာက္ အသံုးတဲ့တယ္ဆိုတာကို
သက္ေသၿပလုိက္တာပါ။
စာဖတ္သူတို႔ အဆင္ေၿပရင္ေၿပသလို ဥာဏ္ရိွရင္ ရိွသလို ခ်ဲ႕ထြင္ေရးနုိင္ၾကပါတယ္။ကဲဒါဆုိ က်ေနာ္ ခုနက ဥပမာ ရဲ႕ အလုပ္လုပ္ပံု
လုပ္နည္းကို ရွင္းၿပၿပီးၿပီ ၿဖစ္လို႔ Code ေတြကို နည္းနည္း
ၿပန္ရွင္းၿပပါမယ္။ မွတ္မိသြားေအာင္ေပါ့။
4 လိုင္းေၿမာက္က echo %1 %2 ဆုိတာကေတာ့ For ထဲမွာ ေၾကၿငာထားတဲ့ a ဆိုတဲ့ Variable ထဲမွာ၇ိွမယ့္ %1 နဲ႔ %2 ထဲက Variable ကို ရိုက္ထုတ္တာပါ။
ထုိသုိ႔ ၿပဳလုပ္ၿခင္းအားၿဖင့္ က်ေနာ္တုိ႔ဟာ ခုန Run ၾကည့္တုန္းလိုမ်ိဳး I am going to delete the
following files: ဆိုတဲ့ စာသားေအာက္မွာ က်ေနာ္တုိ႔ ရိုက္ထည့္လိုက္တဲ့
a.txt နဲ႔ b.txt ကို ေဖာ္ၿပေပးတာပါ။ OK?
၅ လုိင္းေၿမာက္မွာေတာ့ ပံုမွန္ echo ေနာက္မွာ . ေလးကို ထည့္ထားတာပါ။ ထုိသို႔ထည့္ထားၿခင္းအားၿဖင့္ တစ္လိုင္းၿခားတဲ့ ကိစၥကို လုပ္ေဆာင္ေပးပါတယ္။ (အရင္က မေၿပာခဲ့ရလုိ႔ အခုမွ
ၿဖည့္ေၿပာေပးတာပါ)
ဒါဆုိ for looping ကို ေရးထားတဲ့ ေနရာကို ရွင္းၿပေပးပါ့မယ္။
ဖတ္ရ ခက္မွာ စိုးလုိ႔ အေပၚကဥပမာထဲက For Loop အတြက္ Code ကို ၿပန္ေရးေပးလိုက္ပါတယ္။
for %%a IN(%1 %2) do del %%a
ဒါဆုိရင္ Program ေလးလဲ Run ၿပီးသားဆုိေတာ့ For Loop ထဲက လုပ္ငန္းေတြကုိနည္းနည္းေတာ့ သေဘာေပါက္ေနၿပီထင္ပါတယ္။
ပိုၿပီးေတာ့ နားလည္သြားေအာင္ က်ေနာ္ နည္းနည္း လွ်ာရွည္လိုက္ပါ့မယ္။
%%a ဆုိၿပီးေတာ့ a ဆုိတဲ့ Variable ေလးတစ္ခုေၾကၿငာပါတယ္။
အဲဒီ့ a ထဲကို IN(%1 %2) ဆုိၿပီးေတာ့ a ထဲကို 1 နဲ႔ 2 ကို ထည့္ထား သတ္မွတ္ထားပါတယ္။
ၿပီးေတာ့ do ဆုိၿပီး ခုနက a ထဲမွာ ေရာက္ေနမယ့္ တန္ဖုိး ၂ ခုကို del ဆုိတဲ့ command နဲ႔ ဖ်က္လုိက္ပါတယ္။
ဒီေလာက္ဆုိ နားလည္မယ္ထင္ပါတယ္။ For နဲ႔ ပါတ္သက္လို႔ က်ေနာ္ ရွင္းၿပနုိင္တာ ဒီေလာက္ပါဘဲ။ ပိုမိုေကာင္းမြန္တဲ့ Looping ေတြနဲ႔ ၿပီးၿပည့္စံုေသာ bat
တစ္ခုကို ဖန္တီးၿပီး PC ကို အၿပည့္အ၀ အႏာၱရာယ္ အၾကီးအက်ယ္ေပးလို႔ရတဲ့
အတြက္ အမ်ားၾကီးမရွင္းၿပေတာ့ပါဘူး။
IF ကို Coding ထဲမွာ
ထည့္သံုးခဲ့ဖူးေပမယ့္ က်ေနာ္ အေသးစိတ္ရွင္းၿပၿခင္းမရိွခဲ့ပါဘူး။
အဲဒီ့အတြက္ If နဲ႔ ပါတ္သက္ၿပီးက်ယ္က်ယ္ၿပန္႔ၿပန္႔သိနုိင္ေအာင္ အခု
ရွင္းၿပေပးပါ့မယ္။ အရင္ရက္ေတြက က်ေနာ္ေရးခဲ့တဲ့ ဟာေတြက Ref မရိွေပမယ့္
ဒီတစ္ခါေရးတဲ့ဟာကေတာ့ က်ေနာ္ကိုယ္တုိင္လည္း ၿပန္လည္စိတ္ပါလာၿပီး IF နဲ႔
ပါတ္သက္လို႔ အေသးစိတ္ေရးေပးခ်င္တဲ့ စိတ္လည္း ရိွတာေၾကာင့္ Google
ကေနရွာေဖြၿပီး Ref လုပ္ေပးလိုက္ပါတယ္။
က်ေနာ္တုိ႔ရဲ႕ Batch File Programs ေတြကို Intel ရိွေစဖုိ႔နဲ႔ ပိုမို အသံုးတည့္ေစလိုတဲ့ အခါေတြမွာ If statement ေတြကိုအသံုးခ်နုိင္ပါတယ္။
သူ႔ကို အသံုးခ်ၿခင္းအားၿဖင့္ က်ေနာ္တုိ႔ သတ္မွတ္ထားတဲ့ parameter ေတြ Variable
ေတြကို စစ္ၿပီးေတာ့ သက္ဆုိင္ရာ Task တစ္ခုစီကို အလုပ္လုပ္ေစတာမ်ိဳးေတြ
ကိုလုပ္နုိင္ပါတယ္။ ဒါတင္မကေသးပါဘူး သူက က်ေနာ္တို႔လိုခ်င္တဲ့ File ကို
လိုခ်င္တဲ့ေနရာမွာ ရိွမရိွကိုပါ စစ္ေပးနုိင္ပါေသးတယ္။
ၿခံဳငံုေၿပာရမယ္ဆုိရင္ေတာ့ If ကို Variable ေတြကို စစ္တဲ့ အခါမွာ
သံုးတယ္လို႔ အၾကမ္းဖ်င္းမွတ္နုိင္ပါတယ္။
IF ၿဖင့္ File ရိွမရွိကုိစစ္ေဆးၿခင္း
File တစ္ခုကို က်ေနာ္တုိ႔ လုိခ်င္တဲ့ ေနရာမွာ ရိွမရိွကို စစ္ခ်င္တယ္ဆုိရင္ အသံုးၿပဳေလ့ရိွတယ္ If ရဲ႕ ေရးပံုေရးနည္းကေတာ့…
IF EXIST FILENAME Command
က်ေနာ့္ ေရးသားပံုအတုိင္း If ရဲ႕ ေရးပံုေရးနည္းကို နားလည္လြယ္ေစဖို႔ ဥပမာနဲ႔ ရွင္းၿပေပးပါ့မယ္။ ေအာက္မွာ ေပးထားတဲ့ Code ကို Notepad ထဲမွာ ကူးထည့္လိုက္ပါ….
IF EXIST c:\autoexec.bat ECHO The File Exists at that place
အေပၚက Code ရဲ႕ အလုပ္လုပ္မယ့္ပံုစံကို ေလ့လာၾကည့္ရေအာင္…
သူက c:\autoexec.bat ဆုိတဲ့ file ရိွမရိွကို စစ္ပါမယ္ ၊ အကယ္လို႔ရိွခဲ့မယ္ဆုိရင္ေတာ့ echo နဲ႔ ‘The File Exists at that place’
ဆုိၿပီးေတာ့ ေဖာ္ၿပေပးမွာၿဖစ္ၿပီးေတာ့ ၊ မရွိခဲ့ဘူးဆုိရင္ေတာ့
ဘာအလုပ္မွဆက္လုပ္မွာ မဟုတ္ပါဘူး။
Code ကို မရွင္းၿပေတာ့ ဘဲ Program အလုပ္လုပ္မယ့္ ပံုစံကို ရွင္းၿပလိုက္တာ နားလည္လြယ္မယ္ထင္လို႔ က်ေနာ္ ပံုစံေၿပာင္းၿပီးရွင္းၿပရတာပါ။ မေန႔က For Loop ကို က်ေနာ္ code ေတြကိုပါ
ရွင္းၿပတာ ၊ က်ေနာ့္သူငယ္ခ်င္းေတြက နားမလည္ဘူးဆုိလို႔ ဒီေန႔လည္း
အဲလိုထပ္မၿဖစ္ရေလေအာင္ Program Flow ကို ဘဲရွင္းၿပသြားတာပါ။ For Loop ကို
ေတာ့ အခြင့္အခါသင့္လွ်င္ထပ္ရွင္းၿပေပးပါ့မယ္။
အခုက်ေနာ္တုိ႔ အေပၚက ဥပမာကို ၿပန္ၾကည့္လုိက္ပါ။ အကယ္လို႔ File သာ မရွိေတာ့ရင္ သူ အလုပ္မလုပ္ေတာ့ပါဘူး။ အဲဒီ့လုိ မၿဖစ္ေစဖို႔အတြက္ က်ေနာ္တုိ႔ဟာ else ပံုစံမ်ိဳး
အေရးအသားတစ္ခုထည့္ေရးလို႔ရပါတယ္။ စဥ္းစားပံုကေတာ့ အကယ္လုိ႔မ်ား က်ေနာ္တုိ႔
လိုခ်င္တဲ့ file ရိွမယ္ဆုိရင္ အလုပ္တစ္ခု လုပ္ခိုင္းၿပီးေတာ့ ၊
မရိွခဲ့ဘူးဆုိရင္ ေနာက္အလုပ္တစ္ခုလုပ္ပါ ဆိုတာကို အရင္ရက္က
က်ေနာ္ေရးေပးဖူးတဲ့ goto command ကို အသံုးၿပဳသြားမွာပါ။
ဘယ္လိုေရးၾကမယ္ဆုိတာ နားလည္လြယ္ေစဖို႔ ေအာက္မွာ ရိွတဲ့ ဥပမာေလးကို ေလ့လာၾကည့္ရေအာင္….@echo off
IF EXIST C:\syko.txt goto SYKO
goto end
:SYKO
echo SYKO exists
pause
:end
echo SYKO doesn’t exist
pause
အေပၚက ဥပမာကို Run လိုက္မယ္ဆုိရင္ အလုပ္လုပ္မယ့္ ပံုစံကေတာ့….
အကယ္လို႔ C:\syko.txt သာရိွမယ္ဆုိရင္ က်ေနာ္တုိ႔ဟာ goto ကို သံုးၿပီးေတာ့ SYKO ဆုိတဲ့ အပိုင္းတစ္ခုဆီလႊဲထားခဲ့ပါတယ္။ ဒါဆုိရင္ File သာရွိရင္ အဲဒီ့
SYKO ဆိုတာကို လုပ္မွာပါ။
အဲ.. အကယ္လို႔မ်ား file သာမရိွခဲ့ဘူးဆုိရင္ စစခ်င္းေရးခဲ့တဲ့ Program မွာ လုိရပ္သြားမွာဆုိးတဲ့ အတြက္ goto end
ဆုိၿပီးေတာ့ ေနာက္တစ္လိုင္းစစ္ခဲ့ပါတယ္။ ထိုသို႔ စစ္ၿခင္းအားၿဖင့္ File
မရိွေတာ့ရင္ Program ရပ္သြားခ်င္းမွ ေရွာင္ဖယ္နုိင္မွာၿဖစ္ၿပီးေတာ့
Program က ေနာက္တစ္လိုင္းကို အလုိလိုဆင္းဖတ္ၿပီးေတာ့ end ဆုိတဲ့
အပုိင္းကို ေရာက္သြားမွာပါ။ ဒါဆိုရင္ User အတြက္လည္း doesn’t exist ဆုိတဲ့
message ကို ၿပန္လည္ၿမင္ေစမွာၿဖစ္ပါတယ္။
ဒီေလာက္ဆုိရင္ IF နဲ႔ ဖိုင္ရိွတာကို စစ္ပံုစစ္နည္းနားလည္ၿပီလုိ႔ ထင္ပါတယ္။
ဆက္လက္ၿပီးေတာ့ File မရိွတာကို စစ္ၾကည့္ၾကရေအာင္
ေရးသားပံုကေတာ့ ခုနကနဲ႔ တူတူပါဘဲ။
IF NOT EXIST FILENAME Command
ဥပမာေလးေရးၾကည့္ရေအာင္
IF NOT EXIST c:\syko.txt ECHO It doesn’t Exist
Code အလုပ္လုပ္ပံုကို အေပၚမွာရိွတဲ့ exist နဲ႔ တူတဲ့အတြက္ထပ္မရွင္းၿပေတာ့ပါဘူး။
ဒီေလာက္ဆုိရင္ NOT ထည့္သံုးတာလည္း သိေလာက္ၿပီလုိ႔ထင္ပါတယ္။
****************************************************************************
သတိၿပဳရန္၊၊ ၊၊ က်ေနာ္တုိ႔ဟာ တစ္ခ်ိန္တည္းမွာပင္ IF ကို အခါခါသံုးၿပီးေတာ့ File ရိွမရိွစစ္လုိ႔ရတယ္ဆုိတာကို သိေစလုိပါတယ္။ အသံုးၿပဳလို႔ရေအာင္
တစ္ေၾကာင္းေရးၿပပါ့မယ္။
>>> IF EXIST c:\autoexec.bat IF EXIST c:\autoexec.bak ECHO Both Exist br/> ****************************************************************************
အေပၚမွာက်ေနာ္ ေရးၿပခဲ့တာေတြက File ရိွမရိွကိုဘဲ စစ္လုိ႔ အဆင္ေၿပတာပါ။ အကယ္လို႔မ်ား က်ေနာ္တုိ႔ဟာ directories တစ္ခုရွိမရိွကို စစ္ခ်င္ၿပီဆုိရင္ေတာ့ အခက္ေတြ႔ပါၿပီ။ အဲဒီ့လို
အေၿခအေနမ်ိဳးမွာေတာ့ NULL ဆုိတာေလးက အသံုးတည့္ၿပီေပါ့ဗ်ာ။ NULL ဆုိတာကေတာ့
ဘာမွမရိွတာပါ။
DOS ကနားလည္တာကေတာ့ Directory တစ္ခုမွာ NULL ဆုိတဲ့ Folder တစ္ခုရိွပါတယ္တဲ့။ (က်ေနာ္လည္းမသိဘူး Google ေၿပာတာ။ )
ဒါဆုိ က်ေနာ္တုိ႔ c:\windows ဆိုတာမ်ားရွိေလမလားလို႔
စစ္ေဆးၾကည့္ရေအာင္လားဗ်ာ။ အဲဒီ့လုိ စစ္ေဆးဖို႔ကေတာ့ လြယ္လြယ္ေလးပါ အေပၚမွာ
က်ေနာ္တုိ႔ ေရးခဲ့သလို IF EXIST ကို ၿဖည့္ေရးသြားရံုပါ။ ေအာက္က Code ကို
ၾကည့္လုိက္ပါ။
IF EXIST c:\windows\nul ECHO c:\windows exists
အဲဒီ့လိုနည္းမ်ိဳးနဲ႔ဘဲ Drive တစ္ခုဟာ ခြင့္ၿပဳထားတဲ့ Drive ဟုတ္မဟုတ္စစ္နုိင္ပါေသးတယ္။ ေအာက္က Code ကို ၾကည့္ၾကည့္ပါ။
IF EXIST c:\io.sys ECHO Drive c: is valid
ဒီေလာက္ဆုိရင္ File ရိွမရိွကို IF နဲ႔
စစ္ၿခင္းနဲ႔ ပတ္သက္လုိ႔ အားလုံး စံုသြားၿပီၿဖစ္လို႔ ေနာက္တစ္ခန္းမွာ User
ရိုက္လုိက္တဲ့ Parameter ေတြကို စစ္ၿပီးေတာ့ အလုပ္လုပ္သြားပံုကို
ရွင္းၿပပါ့မယ္။
IF နဲ႕ parameter ကို ဘယ္လုိ တုိက္ဆုိင္စစ္ေဆးမလဲဆုိတာကိုေတာ့ ေအာက္က if ရဲ႕ ေ၇းပံုေရးနည္း (syntax) ကို ၾကည့္ၾကည့္ေပးပါ။
IF [NOT] string1==string2 Command
အေပၚမွာေပးထားတဲ့ Code ကို ေအာက္ကဥပမာေလးနဲ႔ေလ့လာၾကည့္ရေအာင္။
@echo off
if %1==cp goto COPY
goto DEL
:COPY
Copy %2 C:\Users\Administrator\Desktop\
echo You have copied %2 to your desktop
goto :END
EL
Del %2
echo Delete Process Completed.
:END
ဒီ ဥပမာေလးကေတာ့ က်ေနာ္ ဟုိးအရင္ကစာအုပ္တစ္အုပ္ကေနေတြ႔ထားတာေလးပါ။ စာဖတ္သူ ပိုမုိနားလည္ေစဖို႔အတြက္ က်ေနာ္ ၿပန္ၿဖည့္ေရးထားပါတယ္။ သူေရးသြားတဲ့
ပံုစံေလးကေတာ္ေတာ္ ေကာင္းပါတယ္။ (အဲဒီ့စာအုပ္ထဲမွာကေရးသာေရးထားတယ္ Code
ကတုိကလည္းတုိေသးတယ္ ရွင္းကမရွင္းၿပထားဘူးဆုိေတာ့ ဘယ္လို ၿပန္ရွင္းရင္
အစ္ကိုတို႔ အစ္မတုိ႔ နားလည္မလဲဆုိတာကို စဥ္းစားလိုက္ရတာ က်ေနာ့္မွာ
ေတာ္ေတာ္ တုိင္ပတ္သြားေသးတယ္။ ခုေတာ့ အုိေကသြားပါၿပီ။ သူ႔မူရင္း Code
လုိလည္း တုိႏံွ႔ႏွံ႔ဟုတ္ေတာ့ဘူး။ နည္းနည္းရွည္သြားဘီ။ နားလည္ဖို႔လည္း
လြယ္သြားပါၿပီ။ )
ဒီ Forum ထဲမွာ code ကို ဒီအတိုင္းၾကည့္ရင္ေတာင္ နားလည္ေနတဲ့ အဆင့္ကို
ေရာက္ေနတဲ့သူေတြလည္း ရိွနုိင္ပါတယ္။ နားမလည္ေသးတဲ့သူေတြအတြက္လည္း
က်ေနာ္ရွင္းၿပေပးပါ့မယ္။ နားလည္ၿပီးသားဆုိရင္လည္း က်ေနာ္ရွင္းတာ
လုိသြားရင္ ၿဖည့္ေၿပာေပးၾကပါဦး။
ဒီဥပမာမွာဆုိရင္ က်ေနာ္တို႔ဟာ parameter ၂ ခုကို သံုးသြားပါတယ္။ ပထမ parameter ကို သံုးထားတဲ့ေနရာကေတာ့ IF statement နဲ႔ cp ဆုိတဲ့ parameter တစ္ခုကို %1 ဆုိတဲ့ user ဆီက ၀င္လာမယ့္ ေကာင္နဲ႔
တုိက္စစ္ပါတယ္။ အကယ္လို႔ တူတယ္ဆုိရင္ေတာ့ COPY ဆုိတဲ့ Function ဆီကို
သြားၿပီးေတာ့ copy အလုပ္ကို လုပ္မွာၿဖစ္ပါတယ္။ ဒါမွမဟုတ္ဘဲနဲ႔
မတူခဲ့ရင္ေတာ့ DEL ဆုိတဲ့ Function ဆီကို ေရာက္မွာ ၿဖစ္ပါတယ္။
ဒုတိယ parameter ကေတာ့ %2 ပါ။ %2 ကိုေတာ့ file name ကို လက္ခံရန္အတြက္
အသံုးၿပဳထားပါတယ္။ က်ေနာ္တုိ႔ဟာ 1st parameter မွာ cp မရိုက္ထည့္ဘဲ
တၿခားဟာသာ ၀င္လာခဲ့ရင္ေတာ့ DEL Function ဆီကို ေရာက္လာမွာၿဖစ္ၿပီးေတာ့ %2
ၿဖစ္တဲ့ က်ေနာ္တုိ႔ သတ္မွတ္ေပးမယ့္ file က ပ်က္သြားမွာၿဖစ္ပါတယ္။
အေပၚက ဥပမာေလးကို run ရင္ ဘယ္လို run ရတယ္ဆုိတာ ေၿပာၿပေပးပါ့မယ္။ က်ေနာ္ FOR Looping အေၾကာင္းရွင္းၿပခဲ့တုန္းက တစ္ခါ ဒီလုိ ပံုစံမ်ိဳးေရးေပးဖူးပါတယ္။
ေမ့သြားတဲ့ သူေတြ အတြက္ ၿပန္ရွင္းၿပေပးတာပါ။
—————————————————————————Program Run ပံု အဆင့္ဆင့္—————————————————————-
Desktop ေပၚမွာ Test ဆုိတဲ့ နာမည္နဲ႔ Folder အသ