Saturday, December 18, 2010

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


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


က်ေနာ္တုိ႔ရဲ႕ TuT ေလးကို ဆက္လက္ေဆြးေႏြးလိုက္ၾကရေအာင္…
က်ေနာ္ ဒီေန႔ ေဆြးေႏြးၾကည့္မွာကေတာ့ if နဲ႔ parameter ေတြကို ႏိႈင္းယွဥ္ၿပီးေတာ့ program ကို အလုပ္လုပ္ေစတဲ့ နည္းၿဖစ္ပါတယ္။

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

Description: :DEL
Del %2
echo Delete Process Completed.

:END
ဒီ ဥပမာေလးကေတာ့ က်ေနာ္ ဟုိးအရင္ကစာအုပ္တစ္အုပ္ကေနေတြ႔ထားတာေလးပါ။ စာဖတ္သူ ပိုမုိနားလည္ေစဖို႔အတြက္ က်ေနာ္ ၿပန္ၿဖည့္ေရးထားပါတယ္။ သူေရးသြားတဲ့ ပံုစံေလးကေတာ္ေတာ္ ေကာင္းပါတယ္။ (အဲဒီ့စာအုပ္ထဲမွာကေရးသာေရးထားတယ္ Code ကတုိကလည္းတုိေသးတယ္ ရွင္းကမရွင္းၿပထားဘူးဆုိေတာ့ ဘယ္လို ၿပန္ရွင္းရင္ အစ္ကိုတို႔ အစ္မတုိ႔ နားလည္မလဲဆုိတာကို စဥ္းစားလိုက္ရတာ က်ေနာ့္မွာ ေတာ္ေတာ္ တုိင္ပတ္သြားေသးတယ္။ ခုေတာ့ အုိေကသြားပါၿပီ။ သူ႔မူရင္း Code လုိလည္း တုိႏံွ႔ႏွံ႔ဟုတ္ေတာ့ဘူး။ နည္းနည္းရွည္သြားဘီ။ နားလည္ဖို႔လည္း လြယ္သြားပါၿပီ။ Description: :DDescription: :DDescription: :D)
ဒီ 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 အသစ္တစ္ခု အရင္ေဆာက္ပါ။
ၿပီးရင္ အေပၚက Code ေလးကို Notepad ထဲမွာေ၇းၿပီးရင္ေတာ့ အဲဒီ့ Folder ထဲမွာ if.bat နဲ႔ သိမ္းလုိက္ပါ။
သူ႔ရဲ႕ လမ္းေၾကာင္းကေတာ့ (C:\Users\Administrator\Desktop\Test) ဆိုၿပီးၿဖစ္ေနရပါမယ္။
အဲဒီ့ Test ဆုိတဲ့ Folder ထဲကိုဘဲ text file တစ္ခုခု ဒါမွမဟုတ္ၾကိဳက္တာ တစ္ခုခုထည့္ထားပါ။ နာမည္ကိုလည္း ၾကိဳက္တာေပးလို႔ရေပမယ့္ က်ေနာ္ ေၿပာလို႔ လြယ္သြားေအာင္ fortesting.txt နဲ႔ သိမ္းထားပါ။
ၿပီးရင္ Start>>RUN>>cmd ကိုရိုက္ထည့္ပါ။
Command Prompt ပြင့္လာၿပီဆုိရင္ေတာ့ ခုနက if.bat ဖိုင္လမး္ေၾကာင္း(C:\Users\Administrator\Desktop\Test) ဆီကို cd Command သံုးၿပီးေၿပာင္းေပးပါ။
cmd ထဲေရာက္ေနၿပီး လမ္းေၾကာင္းလည္းေၿပာင္းၿပီးသားဆုိပါက

မိမိ path လမ္းေၾကာင္း>if.bat cp fortesting.txt
Enter ေခါက္လုိက္ပါက You have copied fortesting.txt to your desktop ဆုိတဲ့ စာေလးေပၚလာၿပီးေတာ့ Desktop ေပၚမွာ က်ေနာ္တုိ႔ရဲ႕ Test ဆုိတဲ့ folder ထဲက ဖိုင္ေလးကို copy ကူးၿပီးသားေတြ႔ရပါလိမ့္မယ္။
အကယ္လို႔မ်ား cp ဆုိတဲ့ေနရာမွာ တၿခားတစ္ခုခု ရိုက္ထည့္လိုက္မယ္ဆုိရင္ေတာ့ Delete Process Completed. ဆုိတဲ့ စာေလးေပၚလာၿပီးေတာ့ fortesting.txt ကို Test ဆုိတဲ့ folder ထဲမွာ ပ်က္သြားတာေတြ႔ရပါမယ္။
အထက္ပါ ဥပမာ ကို က်ေနာ္တုိ႔ ေနာက္္တစ္ဆင့္အေနနဲ႔ ပိုမိုေကာင္းမြန္ေအာင္ ၿပဳၿပင္ခ်င္ရင္ ၿပဳၿပင္လုိ႔ရပါေသးတယ္။ ဥပမာ က်ေနာ္တုိ႔ဟာ Program ထဲမွာဘာမွ မရိုက္ထည့္ဘဲနဲ႔ parameter ကို အလြတ္ၾကီးထည့္ေပးလိုက္ရင္ error ၿပေအာင္ေရးလုိက္ဖို႔ပါ။ ဘာမွ မခက္ခဲပါဘူး။ ေအာက္က Code ေလးတစ္ခုေလာက္ထည့္ေပးလိုက္ရံုပါဘဲ။
@echo off
IF “%1
==”" ECHO Parameter Error
အဲလိုဆုိရင္ေတာ့ Parameter မပါတာနဲ႔ Error Message ကို ၿပေပးမွာပါ။ အဲလိုမ်ိဳးပံုစံတူအေနနဲ႔ က်ေနာ္တုိ႔ဟာ ဒုတိယ parameter ၿဖစ္တဲ့ File Name မွာ အလြတ္ၿဖစ္ေနမေနကို လည္း စစ္ေဆးေပးလို႔ရတယ္ဆုိတာ စာဖတ္သူ အေနနဲ႔ ကိုယ့္ဟာကို စဥ္းစားမိမယ္လို႔ထင္ပါတယ္။
ပထမေရးေပးခဲ့တုန္းက file ၇ိွမရိွစစ္ေဆးသလိုဘဲ ဒီတစ္ေခါက္ parameter စစ္တာမွာလည္း NOT ကို သံုးတာရိွပါတယ္။ သံုးပံုသံုးနည္း အတူတူ ၿဖစ္လုိ႔ မေရးၿပေတာ့ဘူးေနာ္….
ဒီေလာက္ဆုိရင္ Batch File Programming နဲ႔ ဘာေတြ သံုးလို႔ရတယ္ဆုိတာ သေဘာေပါက္လာေလာက္ၿပီလို႔ထင္ပါတယ္။ ဥာဏ္ရိွ၇င္ ရိွသလို ခ်ဲ႕ထြင္ အသံုးၿပဳနုိင္လာပါလိမ့္မယ္။ bat ကို တအားကြ်မ္းသြားရင္ Windows တစ္ခုလုံးကို ေတာင္ ေၿပာင္းၿပန္လွန္လိုက္လို႔ရေသးတယ္။ ဘယ္လိုလုပ္ရလဲဆုိတာေတာ့ ကိုယ့္ဟာကိုယ္စမ္းၾကည့္ၾကေတာ့ေပါ့။ က်ေနာ္ရွင္းၿပတဲ့အထဲမွာေတာင္ အနည္းအက်င္းပါေနၿပီ။ (က်ေနာ့္တုန္းကဆုိရင္ Command Prompt ကေန del လုိ႔ရိုက္လိုက္၇င္ copy လုပ္သြားတာတို႔ copy ဆုိရင္ del တာတုိ႔ အမ်ိဳးမ်ိဳးကလိၾကည့္ဖူးတယ္ဗ်။)
စကားမစပ္ က်ေနာ္ တစ္ခုေလာက္ ေၿပာခ်င္ပါေသးတယ္.. ဟုိေန႔က က်ေနာ့္ရဲ႕ bat tutorial ကို MZ မွာ သြားတင္ၾကည့္တာ အစ္ကုိတစ္ေယာက္က သူက က်ေနာ္ရွင္းၿပတာေတြ နားလည္ပါတယ္တဲ့။ ဘယ္မွာ သံုးရတာတယ္ဆုိတာကိုေတာ့ ခုခ်ိန္ထိမသိေသးလို႔ပါတဲ့။ Description: :DDescription: :DDescription: :Dအဲဒါ က်ေနာ္ ဘယ္လို ၿပန္ေၿဖလိုက္ရင္ ေကာင္းမလဲဟင္။ ဘယ္လို ၿပန္ေၿဖရမွန္းေတာင္ မသိလို႔ ခုထိ မေၿဖေပးရေသးဘူး။ Description: :PDescription: :PDescription: :P
ဒီေန႔ေတာ့ အခ်ိန္မရေတာ့လို႔ ဒီေလာက္ပါဘဲ။ ဆက္ရန္က်န္ေသးသည္……..
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