Sunday, December 12, 2010

Bat Files သင္ခန္းစာ (၅)


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

က်ေနာ္ တုိ႔ရဲ႕ TuT ကို ဆက္လက္ေဆြးေႏြးၾကရေအာင္….
ဒီေန႔မွာေတာ့ Condition စစ္ၿခင္းကိစၥရပ္ေတြနဲ႔ ပါတ္သက္ၿပီးေဆြးေႏြးေပးသြားမွာၿဖစ္ပါတယ္။ IF အေၾကာင္းကေနစတင္ေဆြးေႏြးပါ့မယ္။ အရင္ရက္ေတြက 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 <<< **************************************************************************** အေပၚမွာက်ေနာ္ ေရးၿပခဲ့တာေတြက 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 ေတြကို စစ္ၿပီးေတာ့ အလုပ္လုပ္သြားပံုကို ရွင္းၿပပါ့မယ္။ ခုေတာ့ နားလုိက္ပါဦးမယ္။ ဖတ္ရႈေပးတဲ့အတြက္ ေက်းဇူးတင္ပါတယ္။ ေ၀ဖန္ အၾကံေပး ေထာက္ၿပမႈမ်ားကို လက္ခံလ်က္ 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