Batch File Lesson 1

28
ယ္ကူေလ့လာ Batch File သင္ခန္းစာ ဘယ္မွာထည့္ရမွန္းမသိလု႔ ဒီထ လာထည့္ၿပီး ေရးလုိက္ၿပီဗာ... Admin ေတMod ေတက သင့္ေတာ္တ ့ေနရာကိုသာေရႊ႕လုိက္ပါေတာ့ ကေနာ့္ ဖိုရမ္မွာ ေတာင္းဆုိတ ့ သူေတတအားမားေနလု႔ ေရးေပးရင္းန ႔ ဒီဖုိရမ္မွာလည္း ၿပန္လည္မွေ၀ေပးခင္လု႔ လာေရးတာပါ .... ဒီမွာ ပံုမွန္တင္နုိင္မတင္နုိင္ဆုိတာေတာ့ မေသခာဘူးဗ .... www.myanmaritresource.info မွာေတာ့ ပံုမွန္တင္မွာၿဖစ္လု႔... အ ဒီံမွာလာေရာက္ဖတ္ရႈရင္ အဆင္ေၿပနုိင္ပါတယ္။ ကေနာ္ကိုယ္တုိင္လည္း တအားန ႔ မကြ မ္းကင္သလို ၊ ဒီ Batch File Programming အေၾကာင္းကို ေလ့လာဖူးတာ အလြ န္ၾကာခ ့ၿပီၿဖစ္ပါတယ္။ ယခု လ့လာခင္ပါတယ္ဟုေၿပာေသာ သူမားရိွေသာေၾကာင့္သာ အခုလို အေၿခခံကအစ ရးေပးၿဖစ္တာပါ။ အေၿခခံအကဆုံးန ႔ ကန္ၿပတာစသံုးဖူးတ ့ သူတစ္ေယာက္ပါ အဆင္ေၿပေအာင္တစ္ခါထေရးေပးၾကည့္ပါ့မယ္။ ဒါေပမယ့္ ကေနာ္ မေလ့လာေတာ့ဘ ပစ္ထားတ ့ ဘာသာရပ္တစ္ခုၿဖစ္ၿပီး အခုမွ ၿပန္ကိုင္လိုက္သလိုၿဖစ္ေနတာေၾကာင္မၿပည့္စံုတာမားလည္း ရိွပါလိမ့္မယ္။ ကေနာ့္ေခါင္းထမွာ မွတ္မိတာကိုဘ ၿပန္ခေရးမွာၿဖစ္ပါတယ္။ အဆင္မေၿပမႈတစ္စံုတစ္ရာရိွခ ့ရင္ ခြင့္လႊတ္ေပးၾကပါ။ အားလုံးကိတစ္ခါတည္း အဓိပၸါယ္ေတြ ေၿပာသြ ားမွာ မဟုတ္ဘ ႔ ဥပမာေလးေတြ ႔ အလင္းသင့္သလုိသာ ရွင္းၿပီး တဆင့္ခင္းတက္သြ ားၾကည့္ပါ့မယ္။ ကေနာ္လည္း တစ္ခါမွမေရးခ ့ဖူးေတာ့ ဘယ္က ဘယ္လို နားလည္ေအာင္ စရွင္းၿပီးေရးရမယ္မသိလု႔ပါ။ က စၿပီး ေဆြ းေႏြးၾကည့္ေပးပါ့မယ္။ bat မွာ ပါ၀င္မႈအမားဆုံးန ႔ အေၿခခံ အကဆုံးေလးေတကို စၿပီးေဆြးေႏြ းၾကည့္ရေအာင္ အေၿခခံအကဆုံး command ၃ ခုကေတာ့ (၁) echo (၂) @echo off/on န (၃) pause စတာေတြ ၿဖစ္ပါတယ္ ပထမဆုံးအေနန ႔ ဥပမာေလး တစ္ခုေရးၾကည့္ပါမယ္ Code:

Transcript of Batch File Lesson 1

Page 1: Batch File Lesson 1

လြယကေလလာ Batch File သငခနးစာ

ဘယမာထညရမနးမသလ႔ ဒထလာထညၿပး ေရးလကၿပဗာ... Admin ေတြ Mod ေတြက သငေတာတေနရာကသာေရႊ႕လကပါေတာ

ကေနာ ဖရမမာ ေတာငးဆတ သေတြ တအားမားေနလ႔ ေရးေပးရငးန႔ ဒဖရမမာလညး ၿပနလညမေ၀ေပးခငလ႔ လာေရးတာပါ....

ဒမာ ပမနတငနငမတငနငဆတာေတာ မေသခာဘးဗ.... www.myanmaritresource.info မာေတာ ပမနတငမာၿဖစလ႔... အဒမာလာေရာကဖတရႈရင အဆငေၿပနငပါတယ။ကေနာကယတငလညး တအားန႔ မကြ မးကငသလ ၊ ဒ Batch File Programming အေၾကာငးက ေလလာဖးတာ အလြနၾကာခၿပၿဖစပါတယ။ ယခ ေလလာခငပါတယဟေၿပာေသာ သမားရေသာေၾကာငသာ အခလ အေၿခခကအစ ေရးေပးၿဖစတာပါ။ အေၿခခအကဆးန႔ ကြနၿပတာစသးဖးတ သတစေယာကပါ အဆငေၿပေအာငတစခါထေရးေပးၾကညပါမယ။ ဒါေပမယ ကေနာ မေလလာေတာဘ ပစထားတ ဘာသာရပတစခၿဖစၿပး အခမ ၿပနကငလကသလၿဖစေနတာေၾကာင မၿပညစတာမားလညး ရပါလမမယ။ ကေနာေခါငးထမာ မတမတာကဘ ၿပနခေရးမာၿဖစပါတယ။ အဆငမေၿပမႈတစစတစရာရခရင ခြငလႊတေပးၾကပါ။ အားလးက တစခါတညး အဓပၸါယေတြ ေၿပာသြားမာ မဟတဘန႔ ဥပမာေလးေတြန႔ အလငးသငသလသာ ရငးၿပး တဆငခငးတကသြားၾကညပါမယ။ ကေနာလညး တစခါမမေရးခဖးေတာ ဘယက ဘယလ နားလညေအာင စရငးၿပးေရးရမယမသလ႔ပါ။

ကစၿပး ေဆြးေႏြးၾကညေပးပါမယ။

bat မာ ပါ၀ငမႈအမားဆးန႔ အေၿခခ အကဆးေလးေတြက စၿပးေဆြးေႏြးၾကညရေအာငအေၿခခအကဆး command ၃ ခကေတာ(၁) echo(၂) @echo off/on န႔(၃) pause စတာေတြဘၿဖစပါတယ

ပထမဆးအေနန႔ ဥပမာေလး တစခေရးၾကညပါမယ

Code:

Page 2: Batch File Lesson 1

@echo offecho Hello This is a First Programpause

အဒါေလးက ေစးအၾကးဆး Windows Tool တစခၿဖစတ notepad မာ ေရးၿပးေတာ test1.bat ဆၿပးသမးလကပါ။ၿပးရငေတာ Run လကပါ။ အမေရာင Screen ထမာ ေအာကမာ ၿပထားတစာသားေလးေတြေပၚလာပါလမမယ။

Hello This is a First ProgramPress any key to continue...

ခနက ဥပမာေလးမာ echo off အစား echo on သးၿပးေတာ ဘာမားထးၿခားမလဆတာ ေအာကက Code ေလးကစမးေရးၾကညရေအာင

Code:

@echo onecho Hello This is a First Programpause

ၿပးရငေတာ ခနကအတငး notepad မာ ေရးၿပး test2.bat ဆၿပးသမးၿပး ၿပန Run လကပါ...ေအာကမာ ၿပထားတ အတငး ၿမငရပါလမမယ။

C:\Documents and Settings\User\Desktop>echo Hello This is a First ProgramHello this is a First Program

C:\Documents and Settings\User\Desktop>pausePress any key to continue...

အလၿမငရပါလမမယ။ C:\Documents and Setting\... စတာေတြကေတာ တငထားတ Windows ၊ File ဖြ႔စညးပေတြေပၚမတညၿပး ကြၿပားပါလမမယ။

အခ အေပၚမာ ခနကေရးထားတ Code ေလးေတြက ရငးၿပေပးပါမယ

ကေနာတ႔ ဒတယေရးလကတ code မာဆရင @echo on ကသးလကတ အတြက File

Page 3: Batch File Lesson 1

ထားရာလမးေၾကာငးက 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 က ထပမနားလညေစဖ႔ ေအာကက ဥပမာေလးက ေလလာၾကညပါမယ

Code:

@echo offecho Hello Welcome Backpauseecho I am testing pause functionpause

အဒါက အေပၚက ဥပမာေတြ အတငး Save ၿပး Run ရငေတာ အေၿဖအတငးေဖာၿပပါလမမယ

Hello Welcome BackPress any key to continue...

Page 4: Batch File Lesson 1

I am testing pause functionPress any key to continue...

အဒ Program ေလးက စမးၿပးရငေတာ pause က နားလညသြားေလာကၿပထငပါတယ။

အခေနာကထပ နညးနညး အဆငၿမငတ Command ေတြက ေလလာၾကညရေအာငmsg န႔ cls အေၾကာငးက အရငေလလာၾကညပါမယ

အရငအတငး ဥပမာေလးေတြန႔ ေလလာၾကညရေအာငNotepad က ၿပနဖြငၿပးေတာ ေအာကက Code ေလးေတြက ရကထညၾကညပါမယ....

Code:

@echo offecho Hello I am backpauseclsecho I am testing cls and msg commandsmsg * Bye Byepause

ၿပးရငေတာ test3.bat န႔ သမးၿပး Run လကပါသ႔ အေၿဖကေတာ ေအာကပါအတငးၿဖစပါလမမယ

Hello I am backPress any key to continue...(မတခက၊၊ ၊၊ ဒေနရာ ေရာကလ႔ အကယလ႔မား ကေနာတ႔ဟာ သေၿပာတ အတငး key တစခခက ႏပလကမယဆရင program က cls ဆတ code ရ႕ အလပက ဆကလပမာ ၿဖစပါတယ။အလ လပမယဆရငေတာ ခနက ေပၚခတ Hello I am back ဆတာၾကးက ေပာကသြားမာၿဖစပါတယ။ၿပးရင cls ရ႕ ေအာကက echo ဆတ code အတြက အလပလပပါလမမယ...key တစခခက ႏပလကတယလ႔ သေဘာထားၿပး ဆကၾကညၾကရေအာင....အခဆရငေတာ ေအာကမာ ၿပထားတ စာသားဟာ သင ရ႕ Black Screen ေပၚေရာကေနေလာကပါၿပ...)

Page 5: Batch File Lesson 1

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 ေတြက ရကထညေပးပါ...

Code:

@echo off

Page 6: Batch File Lesson 1

echo We are testing start and remrem title TEST4start testpic.jpgpause

ၿပးရငေတာ test4.bat ဆၿပး ခနက Test ဆတ Folder ထမာ save ၿပး Run လကပါ. ေအာကမာ ၿပထားတ အတငးၿမငရပါလမမယ။

We are testing start and remPress 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 ထမာ ရကထညလကပါ...

Code:

@echo offecho This is a Testecho If you want to do math type 1 and press enterecho If you want to see a picture type 2 and press enterset /p option=

Page 7: Batch File Lesson 1

if '%option%'=='1' goto :mathif '%option%'=='2' start testpic.jpg (အေပၚမာတနးကလဘ ၾကကတ Extension က သးနငပါတယ။)

:mathecho 2 2pause

ၿပးရငေတာ ခနက Folder ထမာဘ test5.bat ဆၿပး save ၿပးရင Run ပါမယ။Run လကရငေတာ ေအာကမာ ၿပထားတ အတငးၿပပါလမမယ...

This is a TestIf you want to do math type 1 and press enterif 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 အေၾကာငးသေလာကၿပထငပါတယ။(မသေသးရင လညး ၿပနဖတေပါ. နားမလညရငေတာ တၿခားသေရးတစာသာ ဖတလကေတာ. ကေနာ အရညအခငးမရလ႔ ဒေလာကလြယတာက နားလညေအာငမေရးနငတာလ႔လညး သတမတလကပါ။)

Page 8: Batch File Lesson 1

ခနက 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 ဆတ အလပက ဆကလပပါလမမယအဒ ၿပငေရးလကတာေလးက ေအာကမာ ၿပနစမးေရးၾကညရေအာင

Code:

set choiceif '%choice%'=='1' goto :math

ဒါဆရငေတာ အကယလ႔ ကေနာတ႔က 1 လ႔ရကထညရင choice ထက 1 ၀ငမယ ၿပးရငေတာ Math ဆတ function အလပက လပပါလမမယ.(if မာပါတ % ဆတာေတြကေတာ ကေနာကယတငေမေနလ႔ ခနလပထားခပါရေစ) အခက Basic အပငးဆေတာ အဒါေတြ မသေသးးလ ကစၥမရေသးပါဘး....

Page 9: Batch File Lesson 1

ဒေလာကဆရင if ၊ set န႔ goto က နားလညသြားၿပလ႔ထငပါတယ

ဟတပါၿပ အခအခနထ ကေနာရငးလာသမအားလးဟာ အလြယတကာ အလြယဆး အေၿခခမားၿဖစပါတယ..ခေလာေလာဆယေတာ မနက ၄ နာရ ထးသြားၿပၿဖစလ႔ ဒေလာကန႔ ေခတရပနားပါရေစ... ေနာကေန႔မာ ေတာ ဒထကပခကလာၿပး အသးကလာမယ အပငးေတြက ဆကလကေရးေပးပါမယ။ မၾကာမလာမညေမာ....

>>>> ဤ tutorial သည Bat အေၾကာငး တစခမ မသ၍ အခမ စတငေလလာမည သမားက ရညရြယေရးသား ၿခငးၿဖစၿပး bat အေၾကာငးတးမေခါကမရၿပးသမား အဖ႔ကေတာ ေနာကလာမည အခနးမားတြင ပါ၀ငႏငမညဟထငပါသည။ ဤ tutorial နင ပတသက၍ ေ၀ဖနပါ ၊ အၾကေပးပါ ၊ ၿပနလည ေဆြးေႏြးပါ ၊ ယခ ေဆြးေႏြးထားသည အထထမ သလသညမားရလင ၊ နားမလညသညမားရလင ေမးပါ ၊ ကေနာ ေကာငးမြနစြာ ၿပနလညေၿဖၾကားေပးပါမည။ လအပခကမားက ေထာကၿပေပးမညသမားရပါကလညး ၀မးေၿမာက၀မးသာ ၾကဆ လကခၿပး ေကးဇးတငမာပါ။ သ႔ေပမယ မေကာငးေၿပာၿပး သၿပးသားတတၿပးသားက ေရးေနသညဟထငေသာသမားမ လာေရာကေၿပာဆပါက မညသညတန႔ၿပနမႈမးမ ၿပလပမညမဟတ။ ေလလာခငေသာ သမားအတြကသာ ေရးသားေပးၿခငးၿဖစ၍ အကးမရဟ ထငပါက ဖတမေနပါနင ေကာသာသြားလကပါ။ စေရးကတညးက ကေနာ ေရးခငလြနးလ႔ အားေနလ႔ ေရးရတာလညး မဟတပါ။ ေတာငးဆလာတ သေတာေတာ မားၿပးေတာ ေတာငးတသတငးက ကေနာ အရငးႏးဆး သငယခငးေတြမ႔ ေရးေပးၿဖစသြားတာပါ။ ဆကလကၿပးေတာ bat န႔ ပတသကလ႔ ေတာေတာမားမားေရးေပးသြားပါမယ။ အကနနးပါးသေအာင ဒ tutorial တစခတညးန႔ ေရးေပးနငေအာင ၾကးစားသြားမာပါ။ ဆကလက ေစာငေမာေပးၾကပါ။

အားလး မဂၤလာပါ.အခလ ဖတရႈအားေပးတ အတြက ေကးဇးတငပါတယ။

ကေနာ သငခနးစာက ဆကလကေရးသားသြားပါမယ။ ပထမ သငခနးစာက ရၿပဆရငေတာ Basic အေနန႔ သသငသေလာကသသြားၿပလ႔ ဆလ႔ရပါၿပ.. အခ ဒတယပငးအေနန႔ နညးနညးေလး အဆငၿမငတာေတြ ေၿပာသြားပါမယ။ ဒ Bat File က TuT အေနန႔ ေရးတာ အားလး စလငသြားရင E-Book အေနန႔ ၿပလပၿပးေတာ ဖရမထကအၿမ မလာနငတသေတြ အဆငေၿပေအာင လပေပးပါမယ။

Page 10: Batch File Lesson 1

အခ ကေနာ ပထမဆး စေၿပာခငတာကေတာ call န႔ exit တ႔ အေၾကာငးၿဖစပါတယ။အရငတေခါကကလဘ Notepad ထသြားၿပးေတာ ေအာကမာ ရတ Code ေတြက ရကထညလကပါ။

Code:

@echo offecho WoW I know the basics of batchcall call.batpauseexit

ၿပးရငေတာ Folder အသစတစခတညေဆာကၿပး အဒါက adv1.bat ဆတနာမညန႔ သမးလကပါ။ေနာကတစခါ Notepad က ၿပနဖြငပါ။ ၿပးရင ေအာကမာ ရတ Code က ထပရကပါ။

Code:

@echo offecho I Love *Y*pause

ၿပးရငေတာ ခနက Save ထားတ adv1.bat န႔ တတ Folder ထမာ call.bat ဆတနာမညန႔ Save လကပါ။ေနာကတစဆငအေနန႔ ပထမေရးထားတ adv1.bat ဆတာက Run လကပါ။ေအာကမာ ၿပထားတ အတငး Screen မာ ေပၚလာပါလမမယ။

WoW I know the basics of batchI Love *Y*Press any key to continue... (ၾကကတ Key တစခကႏပလကပါ)Press any key to continue... (ဒစာေၾကာငးေလး ေနာကတစခါထပေပၚလာမာပါ။ ေနာကထပ ၾကကတ Key က ႏပမ Program က ထြကသြားပါလမမယ)

အဒါက ၾကညခငးအားၿဖင exit က ဘာအလပလပတယဆတာ သမာပါေနာ..ေနာကတစခအေနန႔ call ပါ... call ဆတာကေတာ ေနာကထပ batch file တစခက

Page 11: Batch File Lesson 1

ေခၚသးတာပါ။ ဒေလာကဆ call န႔ exit အေၾကာငးသေလာကၿပထငပါတယ။

ကေနာတ႔ TuT က ၿပနစလကရေအာင....ဒတစခါေတာ Features နညးနညး စစလငလငက တငၿပေပးပါမယ။ ကေနာေရးတာက အလြယအဆငကေန အခကအဆင က သြားေနတာေတာ မဟတဘးေနာ။ ကေနာ မာ ကးကားစရာစာအပက မရေတာလ႔ ဟေရာကဒေရာကန႔ ကေနာ သတရၿပးေတာ သေသးသမေတြေရးေပးေနတာပါ။ ဖတရတာ အခကအခေတာ နညးနညးရမယလ႔ထငတယ။ နားလည ေပးမယလ႔ထငပါတယ။

ဟတကပါ အခ ကေနာ ေရးေပးမာကေတာ Windows Application တစခက ဘယလ ေခၚ Run မလဆတာပါေအာကမာေပးထားတ Code က Notepad မာရကထညၾကညပါမယ...

Code:

@echo offecho I am testing to call Notepad.exestart /MIN notepadpause

အဒါက save ၿပးေတာ Run မယဆရငေတာ ေအာကမာ ၿပထားတ အတငးေပၚလာပါလမမယ။

I am testing to call Notepad.exe(အဒါလာၿပးရင Notepad က minimized အေနအထားန႔ ေပၚလာပါလမမယ။ /MIN ေနရာမာ /MAX လ႔ထားရငေတာ maximized အေနအထားန႔ ေပၚမာပါ)Press any key to continue...

ေနာကတစဆငအေနန႔ batfile ထကေန ထြကဖ႔ အခနသတမတေပးၾကညရေအာငေအာကမာေပးထားတ Code ေလးေတြက Notepad ထမာေရးေပးပါ

Code:

@echo off

Page 12: Batch File Lesson 1

echo i am trying timeoutset wait=0

:pause1set /a wait=%wait%+1if %wait% leq 1000 goto pause1

echo IT WORKED!!!pause

ဒ Code ေတြက နားမလညဘးဆရငေတာ Copy Paste သာလပၿပးေတာ Notepad ထက ထညလကပါေတာ။ကေနာ အေပၚမာေရးဖးတ နစခထမာ set အေၾကာငး အနညးငယပါၿပးေတာ if န႔ condition စစတာလညး ပါသလ

ause1 လမး Function ခြေရးတာလညး ဘာဆတာ ပါပါတယ။ အဒေတာ ဒါက နားမလညရငလညး အဒါေလးေတြ ၿပနၾကညလကရင အၾကမးဖငးေတာ သေဘာေပါကမာပါ။% ေတြ /a ေတြန႔ ကနတ နားမလညတာေတြက ခနထားခပါ။ အကယလ႔ ကေနာ အခနရရင Parameter ေတြ အေၾကာငးက ကယကယၿပန႔ၿပန႔ ထပေဆြးေႏြးေပးပါမယ။ ခေတာ ဒတငး သေဘာေပါကရေလာကေလး ထားၿပး အဒါေလးက Save ၿပးရင Run လကပါ။ ေအာကမာ ၿပထားတ အတငးေပၚလာပါလမမယ...

I am trying timeout

(ၿပးရငေတာ စကန႔ နညးနညးေလာကေစာငရပါလမမယ) (အဒါကေတာ ause1 ထမာ ေရးထားတ Code ေၾကာငပါ။)(အဒါက ေစာငၿပးရငေတာ ေနာကတစေၾကာငးလာပါလမမယ)IT WORKED!!!Press any key to continue...

ဒါဆရငေတာ စကန႔ ၿဖစၿဖစ မနစၿဖစၿဖစ သတမတၿပးေတာ batch file run တာက ရပၿခငးအား ကေနာတ႔ စမးသတၿပးပါၿပ။ ဘယလ အလပလပတယဆတာလညး နားလညမယလ႔ထငပါတယ။

ကေနာ ေနာကထပ တစဆငအေနန႔ TIME ဆတ Command အေၾကာငးက

Page 13: Batch File Lesson 1

ရငးၿပေပးပါမယေအာကမာ ေပးထားတ Code ေတြက Notepad ထမာ ေရးလကပါ...

Code:

@echo offecho Hello.... What time it is!!!TIME 12:00echo oHH it is 12:00pause

အဒါက Save ၿပး Run မယဆရငေတာ ေအာကမာ ၿပထားသလ ၿမငရပါလမမယ...

Hello.... What time it is!!!oHH it is 12:00

ဒါဆရင TIME က ဘာအလပလပလညး ဆတာ သၿပလ႔ထငပါတယ။ စကရ႕ အခနက ေၿပာငးေပးတာပါ။ေနာကတစဆငအေနန႔ ကေနာတ႔ DOS ထမာ ၿပမယ စာသားေတြန႔ ေနာကခေတြ က အေရာငေလးေတြန႔ အလဆငၾကညၾကပါမယ။ေအာကမာ ေပးထားတ Code ေတြက Notepad ထကးၿပး Save ၿပး Run လကပါ။

Code:

@echo offecho I am trying the colorspausecolor 04echo testingpausecolor fecho againpausecolor 4fecho DONEpause

Page 14: Batch File Lesson 1

Run လကရင ဘယလေဖာၿပတယဆတာေတာ ကယဟာကယ လပၾကညလကပါ။ ကေနာ Code ေတြက ဘရငးၿပေပးပါေတာမယ။color ဆတာကေတာ အေရာငသတမတတယဆတာ လတငး သပါလမမယ။ သ႔ေနာကမာ ထညတ Code ေတြက ရငးၿပပါမယ။

04= background black န႔ font က red ထားတာပါf = font က white ထားတာပါ4f = background red န႔ f က white ထားတာပါ

ပၿပး အေသးစတသခငရငေတာ Run>>cmd>>color /? ဆၿပးရကလကပါ။

0=balck1=blue2=green3=aqua4=red5=purple6=yellow7=white8=gray9=light bluea=light greenb=light aquac=light redd=light purplee=light yellowf=bright whiteအဒလေဖာၿပပါလမမယ။ အဒါေတြက ခနက ကေနာတ႔ သးသလမး color 9f စသညၿဖင တြသးနငပါတယ။ေရ႕မာထားတ ဟာက Back Color ၿဖစၿပးေတာ ေနာကကဟာက Font Color ၿဖစပါတယ။ဒေလာကဆရငေတာ Color ေတြ အေၾကာငးသနငပါၿပ။ ဥာဏရသလ ခ႕ထြငအသးခ သြားနငပါတယ။

Page 15: Batch File Lesson 1

အခေနာကတစဆငအေနန႔ Title ေၿပာငးတာက ေၿပာၿပေပးပါမယေအာကက Code ေတြက Notepad ထမာေရးၿပး Save လကပါ။

Code:

@echo offtitle Myanmar IT Resourceecho Trying to change the titlepause

အဒါက Run လကရငေတာ Title Bar မာ Myanmar IT Resource ဆၿပးေဖာၿပပါလမမယေနာကတစဆင အေနန႔ Shutdown န႔ Restart က စမးၾကညၾကပါမယ။

Code:

@echo offstart C:\Windows\RUNDLL.EXE user.exe,exitwindowsexecexit

အဒ အေပၚကေကာငေလးက save ၿပး Run မယဆရငေတာ Restart ကသြားပါလမမယ။

Code:

@echo offstart C:\Windows\RUNDLL32.EXE user,exitwindowsexit

အေပၚကဟာေလးက Run ရငေတာ Shutdown ပါ.ေနာကထပ နညးေတြလညး ရပါေသးတယ။ တၿခားနညးေတြက လတငးသၿပးသားေတြမ႔လ႔ ဒနညးေလးက ေဖာၿပေပးလကတာပါ။ code ေတြကေတာ ရငးရငးလငးလငးေတြ မ႔လ႔ လတငးနားလညမယထငလ႔ ထပ မရငးၿပေတာဘးေနာ။ နားမလညေလာကစရာလညး မပါဘးလ႔ထငပါတယ။

ဒေန႔ေတာ ကေနာ TuT က ဒေလာကန႔ ရပနားပါရေစ။ ေနာကေန႔ေတြမာ For န႔ Looping ပတတာက အေသးစတရငးၿပသြားပါမယ။ လအပတာရရငလညး ၿဖညစြကေၿပာေပးၾကပါ။ သခငတာရရင ၊ ကေနာက ေရးေစခငတာရရငလညး ေမးခ ၊ ေၿပာခၾကပါ။ ကေနာ တတနငသေလာက လပေပးသြားပါမယ။ ကေနာ သရငသတယ မသရငမသဘး

Page 16: Batch File Lesson 1

ရငးရငးလငးလငးေၿပာေပးပါမယ။

စာဖတသ အားလးက ေကးဇးတငစြာၿဖင

သငခနးစာေလး ဆကလကေဆြးေႏြးၾကရေအာင

ကေနာ ဒတစေခါက ေၿပာၿပေပးမာကေတာ For Loop အေၾကာငးၿဖစပါတယ။အဆင နညးနညး ၿမငလာၿပၿဖစလ႔ ေသခာေလး လကလပၾကညေစခငတယ။ ၁ေခါကန႔ နားမလညရင အနညးဆး ၂ ေခါကေလာကဖတေပးပါ။ ကေနာေရးထားတာ နားမလညရငေတာ ကေနာက ၿပနေမးပါ။ ေၿဖေပးပါမယ။

ဒါဆ ကေနာတ႔ For Loop အေၾကာငးေလး စလကရေအာငသ႔က ေရးမယဆရင ေရးပေရးနညးကေတာ

FOR %%PARAMETER IN(set) DO command

For Loop ရ႕ Syntax ကေတြ႔လ႔ စတမညစသြားပါန႔။ ကေနာ အတတနငဆး နားလညလြယေအာငေရးေပးပါမယ။ကေနာ တနးက ဆရင ဒ Looping အပငးလညး ေရာကေရာ သငေပးမယသလညး မရ ၊ Google မာရာေတာ လညး အၿပညအစမရန႔ ေတာေတာ ဒကၡေရာကခရတာ။ အခေတာ ကေနာလညး နားလညသငသေလာက နားလည ခၿပးၿပမ႔ မတမသေလာက ၿပနလညမေ၀တာပါ။အစက တ႔ ဒအပငးမာ ဖတရတာ နားမလညေတာ လ႔ စတညစၿပးေတာ Bat က မေလလာေတာတာ မးေတာ မလပပါန႔ လ႔ ေတာငးဆခငပါတယ။ ကေနာတနးကလညး အလ စတမးၿဖစဖးလ႔ပါ။ နားမလညရင ကေနာက ေမးပါ။ ကေနာမသရငလညး ကေနာထကေတာတ တတတသေတြက ၿပနေမးေပးပါမယ။အတတနငဆး နားလညေအာငေရးေပးမာ ၿဖစလ႔ ေသခာလကလပေပးပါ။ကဒါဆရင ကေနာ ေရးနညး ထးစအတငး ေအာကက ဥပမာေလးန႔ စလကရေအာင

Code:

@echo offclsfor %%A in (abc,def,xyz) do echo %%A

Page 17: Batch File Lesson 1

အဒါေလးရ႕ 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 ၿပးေတာ ၾကညလကပါ။ ေအာကကေပးထားတ အေၿဖအတငးရပါလမမယ။

abcdefxyz

Page 18: Batch File Lesson 1

အလ တစခခငးစ 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 မာ ေရးၾကညလကပါ။

Code:

@echo offechoecho I am going to delete the following files:echo %1 %2echo.echo Press Ctrl+C to Abort processpausefor %%a IN(%1 %2) do del %%aecho Killed Files. Mission Accomplished.

ေရးၿပးၿပဆရငေတာ သ႔က testfor.bat န႔ Save လကပါ။ ၿပးရင ဒတငးထားပါ။ Program က မ Run လကပါန႔။

Start>>Run>>cmd>> ထေရာကသြားရင ခနက ကေနာတ႔ ေရးခတ testfor.bat ရ႕ လမးေၾကာငးက ေၿပာငးလကပါ။ Path ေၿပာငးတာေတာ ကေနာလညး အေသးစတမေၿပာၿပေတာဘးေနာ။ cd Command န႔ ေၿပာငးတယဆတာ အားလး သၿပသားၿဖစမာပါ။အဒ လမးေၾကာငးက ေၿပာငးၿပးရငေတာ ခနက save ခတ testfor.bat က ေခၚလကပါ

Page 19: Batch File Lesson 1

ၿပးရင ဖကခငတ file name က အဒေနာကမာထပေရးပါ။စာန႔ေရးတာ နားမလညမာဆးလ႔ ကေနာ ဥပမာ ေရးၿပလကပါမယ။

Code:

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 က ၿပနေရးေပးလကပါတယ။

Code:

for %%a IN(%1 %2) do del %%a

Page 20: Batch File Lesson 1

ဒါဆရင Program ေလးလ Run ၿပးသားဆေတာ For Loop ထက လပငနးေတြကနညးနညးေတာ သေဘာေပါကေနၿပထငပါတယ။ပၿပးေတာ နားလညသြားေအာင ကေနာ နညးနညး လာရညလကပါမယ။

%%a ဆၿပးေတာ a ဆတ Variable ေလးတစခေၾကၿငာပါတယ။အဒ a ထက IN(%1 %2) ဆၿပးေတာ a ထက 1 န႔ 2 က ထညထား သတမတထားပါတယ။ၿပးေတာ do ဆၿပး ခနက a ထမာ ေရာကေနမယ တနဖး ၂ ခက del ဆတ command န႔ ဖကလကပါတယ။ဒေလာကဆ နားလညမယထငပါတယ။ For န႔ ပါတသကလ႔ ကေနာ ရငးၿပနငတာ ဒေလာကပါဘ။ ပမေကာငးမြနတ Looping ေတြန႔ ၿပးၿပညစေသာ bat တစခက ဖနတးၿပး PC က အၿပညအ၀ အႏာရာယ အၾကးအကယေပးလ႔ရတ အတြက အမားၾကးမရငးၿပေတာပါဘး။

ေနာကေန႔ေတြမာ IF န႔ ပါတသကလ႔ အေသးစတေဆြးေႏြးေပးပါမယ။ အဒါၿပးရငေတာ Bat အေၾကာငးလညး အေၿခခအေနန႔ ေတာေတာ စသြားေလာကၿပၿဖစလ႔ ကေနာ TuT က IF Statement အေၾကာငးန႔ ပတမယဆတာ ၾကတင ေၿပာၾကားပါရေစ။ ဒထက bat အေၾကာငးအေသးစတသခငရငေတာ bat န႔ ပါတသကတ site တစခ႕ရပါတယ။ ဒေန႔ေတာ မပါလာလ႔ ကေနာၿပနရာၿပး ေနာကေန႔မာ တငေပးပါမယ။စာဖတသတ႔ အေနန႔ bat က အသးၿပၿပး System တစခက ေကာငးေကာငး ထနးခပလ႔ရပါတယဆတာက အနညးငယသသြားၿပၿဖစလ႔ အကယလ႔မား ဒထက ကယကယၿပန႔ၿပန႔သခငရငေတာ စာမားမားဖတပါ.. Windows Command ေတြက ရာေဖြပါ။ DoS ေခတက ခဏ ၿပနသြားပါ လ႔တကတြနးပါရေစ။ (ကေနာကေတာ ဒါန႔ ပါတသကလ႔ စတမ၀ငစားေတာလ႔ ဆကမေလလာေတာဘးဗ႕။ Razz အခေတာင ေရးလကစမ႔လ႔ ၊ ၿပနစဥးစားရတာ ေတာေတာ ဥးေႏာကေၿခာကတယ။ Very Happy Very Happy)

ေစာငဆငးဖတရႈေပးေသာ သမားအားလးက ေကးဇးအထးတငရပါသည။

ကေနာ တ႔ရ႕ TuT က ဆကလကေဆြးေႏြးၾကရေအာင....ဒေန႔မာေတာ Condition စစၿခငးကစၥရပေတြန႔ ပါတသကၿပးေဆြးေႏြးေပးသြားမာၿဖစပါတယ။

Page 21: Batch File Lesson 1

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 ထမာ ကးထညလကပါ....

Code:

IF EXIST c:\autoexec.bat ECHO The File Exists at that place

အေပၚက Code ရ႕ အလပလပမယပစက ေလလာၾကညရေအာင...သက c:\autoexec.bat ဆတ file ရမရက စစပါမယ ၊ အကယလ႔ရခမယဆရငေတာ echo န႔ 'The File Exists at that place' ဆၿပးေတာ ေဖာၿပေပးမာၿဖစၿပးေတာ ၊ မရခဘးဆရငေတာ ဘာအလပမဆကလပမာ မဟတပါဘး။

Page 22: Batch File Lesson 1

Code က မရငးၿပေတာ ဘ Program အလပလပမယ ပစက ရငးၿပလကတာ နားလညလြယမယထငလ႔ ကေနာ ပစေၿပာငးၿပးရငးၿပရတာပါ။ မေန႔က For Loop က ကေနာ code ေတြကပါ ရငးၿပတာ ၊ ကေနာသငယခငးေတြက နားမလညဘးဆလ႔ ဒေန႔လညး အလထပမၿဖစရေလေအာင Program Flow က ဘရငးၿပသြားတာပါ။ For Loop က ေတာ အခြငအခါသငလငထပရငးၿပေပးပါမယ။

အခကေနာတ႔ အေပၚက ဥပမာက ၿပနၾကညလကပါ။ အကယလ႔ File သာ မရေတာရင သ အလပမလပေတာပါဘး။ အဒလ မၿဖစေစဖ႔အတြက ကေနာတ႔ဟာ else ပစမး အေရးအသားတစခထညေရးလ႔ရပါတယ။ စဥးစားပကေတာ အကယလ႔မား ကေနာတ႔ လခငတ file ရမယဆရင အလပတစခ လပခငးၿပးေတာ ၊ မရခဘးဆရင ေနာကအလပတစခလပပါ ဆတာက အရငရကက ကေနာေရးေပးဖးတ goto command က အသးၿပသြားမာပါ။

ဘယလေရးၾကမယဆတာ နားလညလြယေစဖ႔ ေအာကမာ ရတ ဥပမာေလးက ေလလာၾကညရေအာင....

Code:

@echo offIF EXIST C:\syko.txt goto SYKOgoto end

:SYKOecho SYKO existspause

:endecho SYKO doesn't existpause

အေပၚက ဥပမာက Run လကမယဆရင အလပလပမယ ပစကေတာ....အကယလ႔ C:\syko.txt သာရမယဆရင ကေနာတ႔ဟာ goto က သးၿပးေတာ SYKO ဆတ အပငးတစခဆလႊထားခပါတယ။ ဒါဆရင File သာရရင အဒ SYKO ဆတာက လပမာပါ။အ.. အကယလ႔မား file သာမရခဘးဆရင စစခငးေရးခတ Program မာ လရပသြားမာဆးတ အတြက goto end ဆၿပးေတာ ေနာကတစလငးစစခပါတယ။ ထသ႔

Page 23: Batch File Lesson 1

စစၿခငးအားၿဖင File မရေတာရင Program ရပသြားခငးမ ေရာငဖယနငမာၿဖစၿပးေတာ Program က ေနာကတစလငးက အလလဆငးဖတၿပးေတာ end ဆတ အပငးက ေရာကသြားမာပါ။ ဒါဆရင User အတြကလညး doesn't exist ဆတ message က ၿပနလညၿမငေစမာၿဖစပါတယ။ဒေလာကဆရင IF န႔ ဖငရတာက စစပစစနညးနားလညၿပလ႔ ထငပါတယ။

ဆကလကၿပးေတာ File မရတာက စစၾကညၾကရေအာငေရးသားပကေတာ ခနကန႔ တတပါဘ။

IF NOT EXIST FILENAME Command

ဥပမာေလးေရးၾကညရေအာင

Code:

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 တစခရပါတယတ။

Page 24: Batch File Lesson 1

(ကေနာလညးမသဘး Google ေၿပာတာ။ )ဒါဆ ကေနာတ႔ c:\windows ဆတာမားရေလမလားလ႔ စစေဆးၾကညရေအာငလားဗာ။ အဒလ စစေဆးဖ႔ကေတာ လြယလြယေလးပါ အေပၚမာ ကေနာတ႔ ေရးခသလ IF EXIST က ၿဖညေရးသြားရပါ။ ေအာကက Code က ၾကညလကပါ။

Code:

IF EXIST c:\windows\nul ECHO c:\windows exists

အဒလနညးမးန႔ဘ Drive တစခဟာ ခြငၿပထားတ Drive ဟတမဟတစစနငပါေသးတယ။ ေအာကက Code က ၾကညၾကညပါ။

Code:

IF EXIST c:\io.sys ECHO Drive c: is valid

ဒေလာကဆရင File ရမရက IF န႔ စစၿခငးန႔ ပတသကလ႔ အားလး စသြားၿပၿဖစလ႔ ေနာကတစခနးမာ User ရကလကတ Parameter ေတြက စစၿပးေတာ အလပလပသြားပက ရငးၿပပါမယ။ ဆကရနရပါေသးသည။ မၾကာမလာမည ေမာ.....ခေတာ နားလကပါဥးမယ။

ဖတရႈေပးတအတြက ေကးဇးတငပါတယ။ေ၀ဖန အၾကေပး ေထာကၿပမႈမားက ၾကဆလက

ကေနာတ႔ရ႕ TuT ေလးက ဆကလကေဆြးေႏြးလကၾကရေအာင...ကေနာ ဒေန႔ ေဆြးေႏြးၾကညမာကေတာ if န႔ parameter ေတြက ႏႈငးယဥၿပးေတာ program က အလပလပေစတ နညးၿဖစပါတယ။

IF န႕ parameter က ဘယလ တကဆငစစေဆးမလဆတာကေတာ ေအာကက if ရ႕ ေ၇းပေရးနညး (syntax) က ၾကညၾကညေပးပါ။

IF [NOT] string1==string2 Command

အေပၚမာေပးထားတ Code က ေအာကကဥပမာေလးန႔ေလလာၾကညရေအာင။

Page 25: Batch File Lesson 1

Code:

@echo offif %1==cp goto COPYgoto DEL

:COPYCopy %2 C:\Users\Administrator\Desktop\echo You have copied %2 to your desktopgoto :END

:DELDel %2echo Delete Process Completed.

:END

ဒ ဥပမာေလးကေတာ ကေနာ ဟးအရငကစာအပတစအပကေနေတြ႔ထားတာေလးပါ။ စာဖတသ ပမနားလညေစဖ႔အတြက ကေနာ ၿပနၿဖညေရးထားပါတယ။ သေရးသြားတ ပစေလးကေတာေတာ ေကာငးပါတယ။ (အဒစာအပထမာကေရးသာေရးထားတယ Code ကတကလညးတေသးတယ ရငးကမရငးၿပထားဘးဆေတာ ဘယလ ၿပနရငးရင အစကတ႔ အစမတ႔ နားလညမလဆတာက စဥးစားလကရတာ ကေနာမာ ေတာေတာ တငပတသြားေသးတယ။ ခေတာ အေကသြားပါၿပ။ သ႔မရငး Code လလညး

တႏ႔ႏ႔ဟတေတာဘး။ နညးနညးရညသြားဘ။ နားလညဖ႔လညး လြယသြားပါၿပ။

)ဒ Forum ထမာ code က ဒအတငးၾကညရငေတာင နားလညေနတ အဆငက ေရာကေနတသေတြလညး ရနငပါတယ။ နားမလညေသးတသေတြအတြကလညး ကေနာရငးၿပေပးပါမယ။ နားလညၿပးသားဆရငလညး ကေနာရငးတာ လသြားရင ၿဖညေၿပာေပးၾကပါဥး။

ဒဥပမာမာဆရင ကေနာတ႔ဟာ parameter ၂ ခက သးသြားပါတယ။ ပထမ parameter က သးထားတေနရာကေတာ IF statement န႔ cp ဆတ parameter တစခက %1 ဆတ user ဆက ၀ငလာမယ ေကာငန႔ တကစစပါတယ။ အကယလ႔ တတယဆရငေတာ COPY ဆတ Function ဆက သြားၿပးေတာ copy အလပက လပမာၿဖစပါတယ။ ဒါမမဟတဘန႔

Page 26: Batch File Lesson 1

မတခရငေတာ 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\Te st) ဆက cd Command သးၿပးေၿပာငးေပးပါ။cmd ထေရာကေနၿပး လမးေၾကာငးလညးေၿပာငးၿပးသားဆပါက

Code:

မမ path လမးေၾကာငး>if.bat cp fortesting.txt

Enter ေခါကလကပါက You have copied fortesting.txt to your desktop ဆတ စာေလးေပၚလာၿပးေတာ Desktop ေပၚမာ ကေနာတ႔ရ႕ Test ဆတ folder ထက ဖငေလးက copy ကးၿပးသားေတြ႔ရပါလမမယ။

Page 27: Batch File Lesson 1

အကယလ႔မား cp ဆတေနရာမာ တၿခားတစခခ ရကထညလကမယဆရငေတာ Delete Process Completed. ဆတ စာေလးေပၚလာၿပးေတာ fortesting.txt က Test ဆတ folder ထမာ ပကသြားတာေတြ႔ရပါမယ။----------------------------------------------------------------------------------------------------------------------------------------------------

အထကပါ ဥပမာ က ကေနာတ႔ ေနာကတစဆငအေနန႔ ပမေကာငးမြနေအာင ၿပၿပငခငရင ၿပၿပငလ႔ရပါေသးတယ။ ဥပမာ ကေနာတ႔ဟာ Program ထမာဘာမ မရကထညဘန႔ parameter က အလြတၾကးထညေပးလကရင error ၿပေအာငေရးလကဖ႔ပါ။ ဘာမ မခကခပါဘး။ ေအာကက Code ေလးတစခေလာကထညေပးလကရပါဘ။

Code:

@echo offIF "%1"=="" ECHO Parameter Error

အလဆရငေတာ Parameter မပါတာန႔ Error Message က ၿပေပးမာပါ။ အလမးပစတအေနန႔ ကေနာတ႔ဟာ ဒတယ parameter ၿဖစတ File Name မာ အလြတၿဖစေနမေနက လညး စစေဆးေပးလ႔ရတယဆတာ စာဖတသ အေနန႔ ကယဟာက စဥးစားမမယလ႔ထငပါတယ။

ပထမေရးေပးခတနးက file ၇မရစစေဆးသလဘ ဒတစေခါက parameter စစတာမာလညး NOT က သးတာရပါတယ။ သးပသးနညး အတတ ၿဖစလ႔ မေရးၿပေတာဘးေနာ....

ဒေလာကဆရင Batch File Programming န႔ ဘာေတြ သးလ႔ရတယဆတာ သေဘာေပါကလာေလာကၿပလ႔ထငပါတယ။ ဥာဏရ၇င ရသလ ခ႕ထြင အသးၿပနငလာပါလမမယ။ bat က တအားကြ မးသြားရင Windows တစခလးက ေတာင ေၿပာငးၿပနလနလကလ႔ရေသးတယ။ ဘယလလပရလဆတာေတာ ကယဟာကယစမးၾကညၾကေတာေပါ။ ကေနာရငးၿပတအထမာေတာင အနညးအကငးပါေနၿပ။ (ကေနာတနးကဆရင Command Prompt ကေန del လ႔ရကလက၇င copy လပသြားတာတ႔ copy ဆရင del တာတ႔ အမးမးကလၾကညဖးတယဗ။)

ဒေန႔ေတာ အခနမရေတာလ႔ ဒေလာကပါဘ။ ဆကရနကနေသးသည........

Page 28: Batch File Lesson 1

မေန႔က ကေနာ ဖားေနလ႔ ပစတငဖ႔ ပကကြကသြားတာ ေတာငးပနပါတယ။ ဒေန႔ေတာင သပေနမေကာငးေသးဘး။

ဒါေပမယ မလာရငလ မေနနငလ႔၊

ဒေန႔ေတာ If ကသ႔ပင Condition စစေသာ Choice Command အေၾကာငးရငးၿပေပးပါမယ။ ဒတစေခါက Choice Command အေၾကာငးကေတာ ဘာသာၿပနထားၿပးေတာ