Saturday, January 29, 2022

How to fix CredSSP Authentication for RDP

ဒါလေးကတော့ စိတ်ကူးပေါက်လို့ ဘာရယ်မဟုတ်ဘူးတင်လိုက်တာပါ။

ကျနော်တို့ အသုံးပြုနေတဲ့ Windows OS တွေမှာ တခါတလေ အမှတ်မထင်ဘဲ " CredSSP encryption oracle remediation" ဆိုတဲ့ error တက်ခဲ့မယ်ဆိုရင် ဖြေရှင်းလို့ရမယ့် နည်းလမ်းလေးတွေ မျှဝေပေးသွားမှာ ဖြစ်ပါတယ်။


ဖြေရှင်းလို့ရတဲ့နည်းလမ်းကတော့ ကျနော်သိသလောက်ဆိုရင် ၄ ခုလောက်ရှိပါတယ်,

၁. Local Group Policy Editor

၂. Registry Editor

၃. Apply Patch

၄. Remove Patch ဆိုပြီး နည်းလမ်း၄ခု ရှိပါတယ်။


အထက်ပါနည်းလမ်း ၄ ခုထဲကမှ Local Group Policy Editor ကို အသုံးပြုပြီး ဖြေရှင်းပြသွားမှာဖြစ်ပါတယ်။ Patch တွေ ကို apply and remove မလုပ်ပြတော့ပါဘူးနော်။ ဘာလို့လဲဆိုတော့ Microsoft က သိတဲ့ အတိုင်း upgrade version အသစ်တွေက ခဏခဏ ထွက်နေတာမို့ပါ ။ စိတ်မပူပါနဲ့ Local Group Policy Editor နဲ့တင်လုံလောက်ပါတယ် ။ အကယ်လို့ ကျနော် တင်ပြသွားတာနဲ့ အဆင်မပြေတာရှိရင် comment box မှာ မေးထားလို့ရပါတယ်။ နောက်နည်းလမ်းတစ်ခု ထပ်ရှာပေးပါမယ် ။ ဒီတော့ စလိုက်ရအောင်ဗျာ .....

Error ပုံစံကတော့ အောက်ပါအတိုင်းဘဲ ဖြစ်ပါတယ်


Fix this error using Group Policy

- Open the Windows Run Box (WIN+R)

- Type gpedit.msc in order to open Computer Configuration .

- Navigate to the Computer Configuration -> Administrative Template -> System -> Crendential Delegation -> Encrypt Oracle Remediation .



အထက်ပါ အဆင့်ထိရောက်ပြီ ဆိုရင် Encrypt Oracle Remediation ကို Double click နှိပ်ပြီး ဝင်ပါ။ အောက်မှာ ပြထားတဲ့ အတိုင်း Enable ပြုလုပ်ပြီး Protection Level မှာ Vulnerable ကို ရွေးပေးပါ။



ဒါတွေ အကုန်ပြီးသွားရင်တော့ နောက်ဆုံး အဆင့်အနေနဲ့ Run Box ကနေ gpupdate လို့ရိုက်ပေးလိုက်ရင် ရပါပြီ ။

အားလုံးဘဲ ကျန်းမာကြပါစေ ........

BAT File သင်ခန်းစာ (၈)

အခု ကျနော်ဆွေးနွေးပေးမယ့် အကြောင်းအရာကတော့ Input ကို redirect လုပ်ခြင်းပါ။

သူမှာ့လည်း ကျနော်တို့ Output မှာတုန်းက လုပ်ခဲ့သလိုမျိုးပါဘဲ Operator တစ်ခုရှိပါတယ်။ အဲဒါကတော့ ဖြစ်ပြီး အခု Input မှာတော့ < ပါ။ C တို့ C++ တို့နဲ့ နည်းနည်းဘဲကွာတယ်နော်။ ဟိုမှာက cout<> လေ… သိပ်မလွဲပါဘူး။

Input Redirection Operator ကို ဘယ်လိုသုံးကြလဲဆိုတာကတော့ ရှင်းပါတယ် ၊ ကျနော်တို့ text file မှာ ရှိတာတွေကို DOS ထဲပြောင်းထည့်တဲ့ အခါမျိုးမှာ သုံးကြတာပါ။ Output တုန်းက DOS ကနေ text file ဆီကို လွှဲပြီးတော့ အခု Input မှာတော့ text file ကနေ DOS ကို လွှဲတဲ့သဘောပါ။


သူ့ကိုတော့ ကျနော်တို့ဟာ Command တစ်ချို့နဲ့ တွဲသုံးလေ့ရှိပါတယ်။ အဲဒီ့ Command တွေကတော့ MORE နဲ့ TYPE ဘဲဖြစ်ပါတယ်။ MORE ဆိုတာက ကျနော်တို့ရဲ့ Text File ထဲက စာသားတွေဟာ တအားရှည်တဲ့ အခါမျိုးမှာ Screen တစ်ချပ်စာကို တစ်ခါပြပေးတဲ့ command ဖြစ်ပါတယ်။ တနည်းအားဖြင့် Scroll ဆွဲရန်လိုတဲ့ စာသားတွေကို Screen Size ဆန့်သလောက် တစ်ခါဆီပြပေးတဲ့ command ပါ။ သူက Enter တစ်ခါခေါက်ရင် တစ်လိုင်းဆင်း ပေးပါတယ်။ (ရေးထားတာ ရှုပ်လို့ နားလည်ပါ့မလားမသိဘူး)

TYPE ဆိုတာကတော့ ကျနော်တို့ရဲ့ Text File ထဲက စာသားရှိသလောက်ကို တစ်ခါတည်းနဲ့ Scroll ဆွဲပြီးပြတဲ့ Command ပါ။ သူ့ရဲ့ Scroll လုပ်သွားတဲ့ speed က တအားမြန်တော့ အောက်ဆုံးရောက်ပြီးမှ အပေါ်ကို တစ်ခါ ပြန်တက်ရရင် ၊ စာတအားရှည်တဲ့ အခါမျိုးမှာ အခက်တွေ့နိုင်ပါတယ်။ (ဒါကော နားလည်ရဲ့လား။ နားမလည်ရင် ပြန်မေးပါနော်။)

အဲဒီ့ Command နှစ်ခုရဲ့ အဓိပ္ပါယ်ကို နားလည်ကြတယ်ဆိုရင်တော့ ၊ ဘယ် Command က ကိုယ်နဲ့ အသင့်တော်ဆုံး ဖြစ်မယ်။ အသုံးပြုမယ့်သူနဲ့ အသင့်တော်ဆုံး ဖြစ်မယ်ဆိုတာ စဉ်းစားပြီး သုံးကြပါ။ (ကျနော်ကတော့ TYPE မှ TYPE ဘဲ… More က enter ခေါက်ရတာ လက်ညောင်းလို့။ ) ဘာကွာသလဲဆိုတာ သေချာသိချင်ရင် အောက်က Code ကို Command Prompt ထဲမှာ သွားရိုက်ကြည့်လိုက်ပါ။

C:\မိမိ import (or) redirect လုပ်မယ့် file ရှိသည့်လမ်းကြောင်း > MORE echo y | del *.*

အဲဒီ့ Code ကို ကြည့်ရင်တော့ နားလည်ပြီထင်ပါတယ်။ echo နဲ့ y ကို ရိုက်ထုတ်ပါတယ်။ အဲဒီ့အတွက် y ဟာ အဲဒီ့ အချိန်မှာ output တစ်ခုဖြစ်ပါတယ်။ သူ့ နောက်မှာတော့ | ဆိုပြီးတော့ Pipe Operator တစ်ခုသုံးထားပါတယ်။ အဲလိုသုံးထားတဲ့ အတွက် ကျနော်တို့ဟာ del တဲ့ Command ကလိုအပ်တဲ့ import တစ်ခုဖြစ်တဲ့ y နေရာမှာ ခုနက ထွက်လာတဲ့ output ဖြစ်တဲ့ y ကို သုံးလိုက်ပါတယ်။OK? (ဟူး… ဒီလောက် ဆိုရင်တော့ သဘောပေါက်ပြီထင်ပါတယ်။) အခုရေးခဲ့တဲ့ နည်းတွေကတော့ Input Redirect လုပ်နည်းများဖြစ်ပါတယ်။ ပုံမှန်လုပ်နေကြဖြစ်တဲ့ Keyboard ကနေ Input သွင်းတာထက် ၊ မိမိရဲ့ System ထဲမှာဘဲ Input ကို လှည့်သုံးသွားတဲ့နည်းပါ။ လုပ်ရတာ ပျော်ဖို့ကောင်းတယ်နော်။ (အခု စာဖတ်သူတော့ ပျော်မပျော်မသိဘူး။ ကျနော့်အတွက်တော့ ဒါတွေ လေ့လာခဲ့ရတဲ့ အချိန်ဟာ ပျော်ဖို့ အကောင်းဆုံးပါဘဲ။ ဘာမှန်းမသိဘဲနဲ့ Screen မဲမဲကြီးမှာ စာတွေ ကျလာတာကို ပျော်ခဲ့တာလေ။ အခုတော့ ပျက်ဆီးနေပြီ… ဘာမှလုပ်ချင်စိတ် ၊ လေ့လာချင်စိတ်မရှိဘူးဖြစ်နေတယ်။)


Batch File Programming က တကယ်လေ့လာရင် အရမ်းကို လွယ်တဲ့ဟာတစ်ခုပါ။ ပြီးတော့ သုံးတတ်ရင် သုံးတတ်သလို အကျိုးလည်းရှိပြီးတော့ ၊ သုံးရတာ လည်း တကယ် ပျော်ဖို့ ကောင်းပါတယ်။ သူ့ကိုလေ့လာချင်တယ် ဆိုရင်လည်း တခြားဟာတွေလို များများစားစား knowledge ရှိစရာမလိုပါဘူး။ DOS Command တွေကို နည်းနည်းပါးပါး အကျွမ်းတဝင်ရှိတယ်ဆိုရင်ဘဲ လုပ်စားလို့ရနေပြီ။

DOS Command တွေနဲ့ ပါတ်သက်လို့ လေ့လာလို့ရတဲ့ site တွေ အများကြီးရှိပါတယ်။ အဲဒီ့မှာလေ့လာပါ ၊ ဖတ်ပါ ၊ မှတ်ပါ ၊ သင်ယူပါ ၊ ကိုယ်တိုင်လုပ်ကြည့်ပါ။ အဲလို site တွေမှာ တစ်ခါတစ်လေဆိုရင် DOS ရဲ့ Hidden Command တွေလည်း မရေမတွက်နိုင်အောင်ရှိနေတတ်ပါတယ်။ အဲလိုလုပ်ပြီးတော့ လေ့လာလိုက် မယ်ဆိုရင် Batch File Programming မှာ ဆရာတစ်ဆူဖြစ်လာနိုင်တယ်။ အပေါ်မှာရေးခဲ့ဖူးတုန်းကလိုဘဲ ဆရာတစ်ဆူဖြစ်ရင် ဘာလုပ်လို့ရလဲတော့ မမေးကြနဲ့နော်။ ကျနော်လည်း Bat ကို အိတ်စပါတ် မဟုတ်သလို စပယ်ရှယ်လစ် လဲဟုတ်ဘူး။ ဘာလုပ်လို့ရလဲဆိုတာလည်း ကိုယ့်ပေါ်ဘဲမူတည်တယ်နော်။

Bat file Programming ကိုဒီမှာဘဲနားတော့မယ်နော် ။ နောက်တစ်ခါ ဘာရေးရမယ်မှန်းက ခုထိမသိသေးလို့ ၊ ဒီနေ့တော့ နောက်တစ်ခေါက် ဘာဆွေးနွေးမယ်ဆိုတာ ကြိုမပြောခဲ့တော ့ဘူးနော်။ နောက်တစ်ခါ ပိုစ့်တင်မှ ဘာအကြောင်းလဲဆိုတာ ကြည့်ပေ တော့။ တာ့တာ…..

စာဖတ်သူအပေါင်း ကျန်းမာပျော်ရွှင်ပြီး Data စျေးများပြန်လည်သက်သာပြီး Doller စျေးများကျလို့ စာမေးပွဲတွေ ဖြေဆိုနိုင်ကြပါစေ။

BAT File သင်ခန်းစာ (၇)

အခု ကျနော်ဆွေးနွေးပေးမယ့် အပိုင်းကတော့ Input/Output ရယ် Redirect လုပ်တာရယ်စတဲ့ အပိုင်းတွေကို ဆွေးနွေးပေးမှာပါ။ ဒီအပိုင်းကတော့ ကျနော် သိပ်မသိလို့ Internet ပေါ်ကနေ ရှာတွေ့ထားတာတွေကို ဘာသာပြန်ထားတာပါ။


System တစ်ခုဟာ ပုံမှန်အားဖြင့်တော့ Output ကို Screen ကနေထုတ်ပြပြီးတော့ ၊ Input ကိုတော့ Keyboard ကနေလက်ခံပါတယ်။ အဲလိုလုပ်တာဟာ လုပ် c dရိုးလုပ်စဉ် သိနေကြ မြင်ဖူးနေကြ လူတိုင်းသိတဲ့ လမ်းဟောင်းကြီးဖြစ်တဲ့ အတွက် ကျနော်တို့ ပျင်းရတာအမှန်ပါ။

အကယ်လို့များ Input တစ်ခုခုကို တခြားတနေရာရာကနေ လက်ခံပြီးတော့ Output ကိုလည်း တခြားနေရာတစ်ခုခုကို သွားထုတ်နိုင်ရင် ပျော်ဖို့နည်းနည်းကောင်း လာမှာပေါ့နော်။ ဟုတ်တယ်ဟုတ်။

Output ကို Screen ပေါ်သက်သက်တင်ပြတာမဟုတ်ဘဲနဲ့ တခြားနေရာမှာ သွားရှိနေစေချင်ရင်တော့ ကျနော်တို့ဟာ Output Redirection Operator ဖြစ် တဲ့ > ဆိုတာကို သုံးလို့ရပါတယ်။

> ဆိုတာက ဘာလုပ်ပေးလည်းဆိုရင်တော့ ကျနော်တို့ Desktop ဒါမှမဟုတ် တစ်နေရာရာကို Print Screen ဖမ်းပြီးတော့ Paint ထဲမှာ save လုပ်သလိုပါဘဲ။ သူကလည်း ကျနော်တို့ ရဲ့ bat program က ရလဒ်တွေ အဖြေတွေကို မှတ်ပြီးတော့ text file တစ်ခုအနေနဲ့ သိမ်းပေးတာပါ။

ဥပမာ တစ်ခုအနေနဲ့ ပြောရမယ်ဆိုရင်တော့….

အကယ်လို့များ ကျနော်တို့ဟာ net ဆိုတဲ့ command အကြောင်းသိချင်လို့ Command Prompt ထဲမှာ help ဆိုတာရိုက်ပြီးတော့ မေးလိုက်တယ်ဆိုပါစို့။ အဲဒါဆိုရင်တော့ ထွက်လာမယ့် အဖြေတွေက နည်းတာမဟုတ်တဲ့ အတွက်ကြောင့် Screen နဲ့ လည်းမဆန့်တာမျိုး ဖြစ်နိုင်သလို ၊ CommandPrompt က minimize ဖြစ်နေရင်လည်း scroll ဆင်းသွားတာ တအားမြန်လွန်းပါတယ်။ အဲဒါဆိုရင် ကျနော်တို့ အနေနဲ့ လိုချင်တဲ့ အဖြေကို ပြန်ရှာတဲ့အခါ scroll bar ကို အပေါ်တက်အောက်ဆင်းနဲ့ အလုပ်ရှုပ်လွန်းပါတယ်။

အဲဒီ့ပြဿနာမျိုးကို ဖြေရှင်းဖို့ကတော့ Output Redirection ဆိုတဲ့ Operator လေးကို သုံးပြီးတော့ ထွက်လာမယ့် ရလဒ်တွေကို text file ထဲမှာ သိမ်းလိုက်တာ အဆင်အပြေဆုံးပါဘဲ။

အောက်က help > help.txt ဆိုတဲ့ Code လေးကို Command Prompt ကိုခေါ်ပြီးတော့ ရိုက်ကြည့်ပါ။

c:\ကိုယ်ပေးချင်တဲ့လမ်းကြောင်း > help > help.txt

အဲဒါဆိုရင်တော့ ကျနော်တို့ရိုက်လိုက်တဲ့ Command Prompt Screen ထဲမှာ ဘာမှကျလာမှာတော့မဟုတ်တော့ပေမယ့်။ ကျနော်တို့ ရွေးပေးခဲ့တဲ့ လမ်းကြောင်း အောက်မှာ help.txt ဆိုတဲ့ text file လေး ရောက်နေပါလိမ့်မယ်။ သူ့ကို ဖွင့်ကြည့်လိုက်ရင်တော့ help ဆိုတဲ့ Command ကို ရိုက်လိုက်ရင်ရလာမယ့် အဖြေတွေ ကို save လုပ်ပေးထားတာ တွေ့ရပါလိမ့်မယ်။ OK?

အဲ… တစ်ခုတော့ သတိပေးမယ်နော်။ text file ရဲ့ နာမည်ပေးရင် အရေးကြီးဖိုင်တွေရဲ့ နာမည်တွေနဲ့ သွားမထပ်ပါစေနဲ့။

ဥပမာ ကျနော့်ဆီမှာ ကျနော့် Password တွေ သိမ်းတဲ့ password.txt ဆိုတဲ့ file ရှိတယ်ဆိုပါစို့။ အဲဒီ့ password.txt ဆိုတဲ့ နာမည်နဲ့ ခုနက help.txt ဆိုတဲ့နေရာမှာ ရိုက်ထည့်လိုက်ရင် ကျနော် သိမ်းထားတဲ့ Password တွေအားလုံးကို Overwrite လုပ်ပလိုက်ပါတယ်။

တိုတို နဲ့ လွယ်လွယ် ပြောရရင်တော့ဗျာ အဲဒီ့ > ဆိုတဲ့ Operator လေးက file နာမည်တူနေတာ တွေ့ရင်တောင်မှ ဘာမပြောညာမပြောနဲ့ ရှိပြီးသား စာတွေကို သူမှတ်ရမယ့် အဖြေနဲ့ overwrite လုပ်လိုက်တယ်ဆိုတာပါ။ အကယ်လို့များ file နာမည်အတူတူပေးမိခဲ့ရင်တော့ ကိုယ့်အပြစ်နဲ့ကိုယ်နော်။ ကျနော် သတိပေးတယ်။ file နာမည် တူတာမရှိရင်တော့ ကိစ္စမရှိပါဘူး။ သူ့ဟာသူ အလိုလို create လုပ်ပေးသွားလိမ့်မယ်။

ခုနက overwrite လုပ်တတ်တယ်လို့ သတိပေးလိုက်တယ်နော်။ ဒါပေမယ့် အဲဒီ့ Overwrite လုပ်တာကို ဖြေရှင်းဖို့ နည်းတစ်ခုတော့ ရှိပါသေးတယ်။ ထပ်ဖြည့်သွား တဲ့နည်းပါ။

အဲဒါကတော့ >> ဆိုတဲ့ Operator သုံးရမှာပါ။ ကျနော်တို့ ခုနက ဥပမာမှာဆိုရင်တော့ help.txt ထဲကို help ရိုက်ရင်ထွက်လာမှာတွေ သိမ်းထားပြီးပါပြီ။ အဲဒီ့ဟာ တွေ အနောက်မှာ ထပ်ဖြည့်ချင်ရင်တော့ အောက်က Code လေးနဲ့ စမ်းကြည့်လိုက်ပါ။

c:\ခုနက help.txt ရှိတဲ့လမ်းကြောင်း > net >> help.txt

Command Prompt ထဲမှာ အဲဒီ့လိုရိုက်လိုက်ရင်တော့ ကျနော်တို့ရဲ့ ရှိပြီးသား help.txt file ထဲမှာ net command ရဲ့ အကြောင်းလေးကို ထပ်ဖြည့်ပြီးသားတွေ့ ရမှာပါ။ ရှင်းမယ်ထင်ပါတယ်နော်။

အလွယ်နည်းမှတ်ထားဖို့က >> ဆိုတာ ရှိပြီးသား file တစ်ခုထဲကို စာထပ်ဖြည့်တဲ့သဘောပါ။

OK?

ကျနော် ပြောရင်းပြောရင်းနဲ့ bat file အကြောင်းကနေ DOS ဘက်နွယ်သွားပြီထင်တယ်။ အစကတည်းကလည်း Bat နဲ့ DOS ဆိုတာ အတူတူပါဘဲ။ အဲဒီ့တော့ ကျနော်လည်း ပြည့်ပြည့်စုံစုံလေး ပြောပြချင်လို့ Internet ပေါ်မှာမွှေရင်းနဲ့ တွေ့တာတွေ အကုန်ပေါင်းထည့်ပြီးတော့ ဘာသာပြန်ပေးလိုက်တာ။ ဟီး… အကျိုးတော့ ရှိပါတယ်။ ဟုတ်တယ်ဟုတ်။

DOS ရဲ့ Command တွေ အနေနဲ့ ခုနကလိုမျိုး File တွေဆီကိုသာ redirect လုပ်ပေးနိုင်တာမဟုတ်ပါဘူး ၊ အမျိုးမျိုးသော Device တွေဆီကိုလည်း redirect လုပ်ပေးနိုင်ပါသေးတယ်။ အောက်မှာ ဆက်လေ့လာပါ။

Command အနေနဲ့ ရိုက်ရမည့် အမည် Device အမည်

AUX Auxiliary Device (COM1)

CLOCK$ Real Time Clock

COMn Serial Port (COM1, COM2, Com3, COM4)

CON Console (Keyboard, Screen)

LPTn Parallel Port (LPT1, LPT2, LPT3)

NUL NUL Device (ဘာမှမရှိတာကို ဆိုလိုတာပါ)

PRN Printer

ဥပမာ အနေနဲ့ ကြည့်မယ်ဆိုရင်တော့…. အကယ််လို့များ ကျနော်တို့ဟာ directory ရဲ့ list ကို Print ထုတ်ချင်တယ်ဆိုရင် အောက်က Command ကို သုံးလို့ရ ပါတယ်။

c:\မိမိ ရွေးချယ်သော နှစ်သက်ရာ လမ်းကြောင်း>dir *.* > prn

အဲဒါဆိုရင် စက်နဲ့ ချိတ်ဆက်ထားတဲ့ Printer ကနေ Print ထုတ်ပါလိမ့်မယ်။ တခြား Command တွေလည်း သူတို့နဲ့ ဆိုင်ရာဆိုင်ရာ အလုပ်ကို လုပ်ကြပါတယ်။ အဲဒီ့မှာ ခက်တာ တစ်ခုက NUL ဆိုတဲ့ Device ပါ။ ကျနော် အစက သူ့ကို ဘယ်နားမှာ သုံးရမယ်မှန်းမသိခဲ့ဘူးဗျ။

အဲဒါနဲ့ ဘော်ဒါကြီး ဂေါ်ဂယ် ဆီသွားမေးတော့ ဒီလိုလေးပြောထားလေရဲ့….

NUL Device ကိုနောက်တစ်မျိုးအနေနဲ့ ‘bit bucket’ လို့ခေါ်ပါသတဲ့။ သူ့ကို Redirect လုပ်ချင်တဲ့ ဘယ်နေရာမှာမှ သုံးလေ့မရှိပါဘူး။ ဒါပေမယ့် လုပ်ချင်တဲ့ အလုပ်ပြီးမြောက်ကြောင်း Message ပြချင်တာမျိုးမှာတော့ သုံးလေ့ရှိပါတယ်။ ဥပမာ… ကျနော်တို့ File တစ်ဖိုင်ကို DOS မှာ COPY လုပ်လိုက်တယ်ဆိုရင်တော့ အလုပ်ပြီးမြောက်ကြောင်းကို 1 file(s) coppied. ဆိုပြီးတော့ ပြတတ်ပါတယ်။ အဲလိုမျိုးကို Redirect လုပ်တဲ့ အခါမှာ ပြချင်တယ်ဆိုရင်တော့….

C:\မိမိလမ်းကြောင်း > copy test.txt > NUL

အဲဒီ့ အပေါ်က Code လေးသုံးလိုက်ရင် ရပါပြီ။ အဲဒါဆိုရင်တော့ ကျနော်တို့ လိုချင်တဲ့ 1 file(s) coppied. ဆိုပြီးတော့ ပြပါလိမ့်မယ်။ OK?

ဒီလောက်ဆိုရင်တော့ ကျနော်တို့ဟာ Output ကို Redirect လုပ်ခြင်းနဲ့ ပတ်သက်ပြီး သိသွားပါပြီ။ နောက်တစ်ခန်းမှာတော့ Input ကို Redirect လုပ်ကြည့်ပါမယ်။

BAT File သင်ခန်းစာ (၆)

ဒီနေ့တော့ ကျနော် IF ERROR LEVEL နဲ့ CHOICE ကို ပေါင်းပြီးရေးသားနည်းကို ပြောပြပေးပါမယ်။

ပထမဦးစွာ ကျနော်တို့ဟာ CHOICE command က Error Level ကို ဘယ်လိုပုံစံမျိုးနဲ့ Return ပြန်ပေးတယ်ဆိုတာ သိထားဖို့လိုပါသေးတယ်။ CHOICE command ကတော့ ကျနော်တို့ Program Run နေတုန်းမှာ key တစ်ခုခုနှိပ်တဲ့အပေါ်မူတည်ပြီးတော့ ERROR LEVEL ကို return ပြန်ပေးသလို /C မှာ ပါတဲ့ ကြိုတင်သတ်မှတ်ထားတဲ့ Key တစ်ခုခုပေါ်မူတည်ပြီးတော့ လည်း return ပြန်ပေးပါတယ်။ အောက်က ဥပမာလေးကို ကြည့်ပြီးနားလည်မှာပါ…


CHOICE /C:SY12


Error Level တွေကို မလေ့လာခင်မှာ ကျနော်တို့အနေနဲ့ တစ်ခုသိထားရမှာက Error Level Code တွေရဲ့ တန်ဖိုးဟာ User ရိုက်ထည့်လိုက်တဲ့ keyပေါ်မူတည်ပြီး တော့ ပြောင်းလဲနေနိုင်ပါတယ်ဆိုတာပါ။ ဆိုလိုတာကတော့ အပေါ်က Code မှာဆိုရင် S ကို နှိပ်ရင် ရမယ့် Error Level က 1 , Y ကို နှိပ်ရင်တော့ 2 , 1 ကို နှိပ်မ ယ်ဆိုရင်တော့ 3 ဖြစ်ပြီးတော့ 2 ကို နှိပ်မယ်ဆိုရင်တော့ ရရှိမယ့် error level က 4 ဆိုပြီးရရှိလာမှာပါ။ ဒီလောက် ဆိုရင်တော့ ကျနော်တို့ဟာ CHOICE command အနေနဲ့ ဘယ်လိုဘယ်ပုံမျိုးနဲ့ ERROR Level တွေကို Return ပြန်တယ်ဆိုတာ သိသွားပါပြီ။

အခု ဆက်လက်ပြီးတော့ IF ERROR LEVEL command က ဘယ်လိုအလုပ်လုပ်တယ် ၊ သူ့ကို ဘယ်လိုသုံးတယ်ဆိုတာလေ့လာပါမယ်။ သူ့ရဲ့ ရေးသားပုံရေးသား နည်းကတော့…


IF [NOT] ERRORLEVEL number command


အဲဒီ့ကောင်ကတော့ လက်ရှိ Error ပေါ်မူတည်ပြီးတော့သာ အလုပ်လုပ်မှာဖြစ်ပါတယ်။ လက်ရှိ ပေးထားတဲ့(စစ်ထားတဲ့) အခြေအနေတစ်ခု (Error Level တစ်ခု) ဟာ မှန်တယ်ဆိုတော့မှ Program က အလုပ်လုပ်မှာပါ။ အဲဒါကို ဥပမာ နဲ့ လေ့လာကြည့်ရအောင်…


IF ERRORLEVEL 3 ECHO OK


အပေါ်က Code ကို run မယ်ဆိုရင်တော့ အကယ်လို့ ကျနော်တို့ရဲ့ လက်ရှိ Error Level ကသာ 3 ဖြစ်မယ်ဆိုရင် OK ဆိုတာကို အမဲရောင်စကရင်မှာ မြင်ရမှာပါ။


မှတ်ရန် ၊၊ ၊၊ အရေးအကြီးဆုံး တစ်ချက်ကတော့ Error Level ကို If နဲ့ စစ်တဲ့ အခါမှာ စစ်လိုက်တဲ့ error level နဲ့ ရလာမယ့် error level ဟာ တူရင်တူ ၊ မတူရင် ကြီးနေမှ Program အလုပ်လုပ်ပါမယ်။


အပေါ်က Code မှာ ဆိုရင် Error Level ဟာ 3 ထက်ကြီးရင်ကြီး မကြီးရင်တူမှ Program အလုပ်လုပ်မှာဖြစ်ပါတယ်။ အခုဆိုရင်တော့ ကျနော်တို့ဟာ CHOICE နဲ့ IF ERROR LEVEL အကြောင်းနားလည်သွားပြီဖြစ်လို့ သူတို့ ၂ ခုကို ပေါင်းစပ်ကြည့်ဖို့ ကြိုးစားရပါတော့မယ်။ တကယ် တော့ ကြိုးစားစရာတောင်မလိုတော့ပါဘူး သူတို့ ၂ ခုကို တစ်ခုချင်းစီကို သေချာနားလည်နေပြီဆိုရင်ကို ပေါင်းစပ်ဖို့က တော်တော်လေး လွယ်သွားပါပြီ။ သူတို့ ၂ ခုကို အသေအချာ ပေါင်းစပ်တတ်မယ်ဆိုရင်တော့ ကျနော်တို့ဟာ Bat နဲ့ Menu Based Program တွေကို အလွယ်တကူ ရေးသားနိုင်တဲ့ အခြေအနေကို ရောက်လာပြီလို့ဆိုရပါလိမ့်မယ်။ အောက်က ဥပမာလေးကို လေ့လာကြည့်ရအောင်။ အဲဒီ့ ဥပမာဟာဆိုရင်တော့ User ဆီကနေပြီးတော့ အသုံးပြုဖို့ Browser တစ်ခုကို Menu အနေနဲ့ ရွေးခိုင်းတာပါ။

(ဒီနေရာမှာ ကျနော် တစ်ခုပြန်ပြောချင်တာကတော့ ကျနော် အရင်က Site Selection Batch ဆိုပြီးတော့ bat file တစ်ခု ဒီဖိုရမ်ထဲမှာ ရေးပေးခဲ့ဖူးပါသေးတယ်။ အဲဒါလေးနဲ့ အခုဥပမာ ပြမယ့်ဟာက သဘောတရားတူနေလို့ ကျနော် သတိရလို့ ပြန်ပြောတာပါ။ အခု Post ကို ဖတ်ပြီးရင် အဲဒီ့ site selection batch ကို မဖတ်ရ သေးရင် သွားဖတ်ပြီးတော့ လေ့လာလိုက်ပါ။ Code တွေကို အလွယ်တကူ နားလည်ပါလိမ့်မယ်။)

ကဲ အောက်က ဥပမာ ဆီဆက်လိုက်ရအောင်….


@ECHO OFF

ECHO.

ECHO.

ECHO Welcome to Browser Selection Program

ECHO.

ECHO 1. Internet Explorer

ECHO 2. Mozilla Firefox

ECHO x. Exit Browser Selection Program

ECHO.

CHOICE “Please Choose Your Browser” /C:12x /N

IF ERRORLEVEL 3 GOTO END

IF ERRORLEVEL 2 START C:\progra~1\firefox.exe

IF ERRORLEVEL 1 start c:\progra~1\intern~1\iexplore.exe

:END


သတိပြုရန် >> အပေါ်က Code မှာ IF ERROR LEVEL ကို အများကနေ အနည်း (၃ ကနေ ၁) ကို ငယ်စဉ်ကြီးလိုက်စီထားတာကို သတိပြုမိစေချင်ပါတယ်။


ကျနော် ဒီနေ့တော့ ကျနော့် Tutorial ၊ ကျနော့် ရေးသားပုံ ၊ ဆွေးနွေးပုံ ဘယ်လောက်ထိရောက်တယ် ဆိုတာကို စမ်းသပ်တဲ့အနေနဲ့ အပေါ်က ဥပမာ ပြလိုက်တဲ့ Code ကို အစအဆုံးမရှင်းပြတော့ပါဘူး။

လွယ်လည်း လွယ်လို့ပါ။ ကြည့်လိုက်တာနဲ့ကို ဘာကဘယ်လိုဆိုတာ သိနိုင်ပါတယ်။ အရင်ကလို ကျနော် အစအဆုံး ရှင်းပြနေရင် အစ်ကို ၊ အစ်မ တို့အနေနဲ့လည်း တကယ်နားလည်မလည် ဆိုတာ ကိုယ်တိုင်မသိနိုင်ဘူးဖြစ်နေပါလိမ့်မယ်။ အဲဒီ့တော့ အခု ကျနော်ပေးတဲ့ ဥပမာကို မဖတ်ခင် အပေါ်က CHOICE နဲ့ IF ERROR LEVEL ဆိုတဲ့ Command အကြောင်းကို အရင်ဖတ်ပါ ၊ သူတို့ ၂ ခုကို နားလည်ပြီဆိုမှ ဒီ ဥပမာကို ဖတ်ပါ။ အကယ်လို့ CHOICE နဲ့ IF ERROR LEVEL command တွေကိုသာ တကယ်နားလည်သွားပြီ ဆိုရင် ဖတ်ရင်းနဲ့တင် ဒီဥပမာကို သဘောပေါက်နေပါပြီ။ အဲဒီ့လိုဆိုရင် ကျနော် ရေးပေးရကျိုးလည်းနပ်ပါပြီ။ အကယ်လို့ အဲလိုလုပ်တာတောင် နားမလည်ဘူးဆိုရင်တော့ ကျနော့်ရေးသားတင်ပြပုံ ၊ ဆွေးနွေးပုံတွေ တစ်ခုမှမကောင်းဘူးဟုသာ Comment ပေးခဲ့ပါ။ ကျနော် လည်း ဘယ်သောအခါမှ Tutorial ဆိုတာတွေကို ကိုယ်တိုင်လည်း ဆက်မရေးတော့သလို ၊ ဘာသာပြန်ပြီးတော့တောင် မရေးတော့ပါဘူး။


အခုတော့ ကျနော် ကိုယ်တိုင် ဒီ Bat ပိုင်းကို ပြန်လည်စိတ်ပါလာပြီဖြစ်လို့ အစက IF နဲ့ တင်ရပ်လိုက်တော့မလို့ဟာ အခု CHOICE ရယ် Error Level အထိပါ ရောက်လာပါပြီ။ နောက်ရက်တွေလည်း bat နဲ့ ပတ်သက်လို့ ဆက်ရေးပေးဖို့ စာပြန်ဖတ်နေပါတယ်။ ခဏနေရင်ပြန်တွေ့မယ်‌နော် :) …

Sunday, January 16, 2022

BAT File သင်ခန်းစာ (၅)

ဒီနေ့တော့ If ကဲ့သို့ပင် Condition စစ်သော Choice Command အကြောင်းရှင်းပြပေးပါ့မယ်။

ဒီတစ်ခေါက် Choice Command အကြောင်းကတော့ ဘာသာပြန် ထားပြီးတော့ ကျနော့်ရေးပုံရေးနည်းဘက်ကို နည်းနည်း ပြန်ပြောင်းထားပါတယ်။ မူရင်းရေးသားသူကတော့ ဘယ်သူမှန်းမသိပေမယ့် CHOICE နဲ့ ပတ်သက်ပြီး တော့ သူရေးထားတဲ့ မူရင်းကတော့ တော်တော်ကောင်းတယ်ဗျ… အကယ်လို့ များ Choice နဲ့ ပတ်သက်ပြီး နားမလည်ခဲ့ရင်တော့ ကျနော့် ရဲ့ ဘာသာပြန်ညံ့ဖျင်း မှုနဲ့ အတူ မူရင်းရေးသားပုံရေးသားနည်းကနေ ကျနော့်ရေးပုံရေးနည်းကို ပြောင်းလိုက်တဲ့အခါမှာဖြစ်လာတဲ့ လိုအပ်ချက်ကြောင့် မကောင်းခြင်းလို့သာ မှတ်ယူပေးပါ။

CHOICE command ကို မပြောခင် ကျနော်တို့ Error Level အကြောင်းကို အရင်ဆွေးနွေးကြည့်ပါမယ်။

Error Level ဆိုတာကတော့ Program က သူပြီးဆုံးသွားတဲ့ အချိန်မှာ သတ်မှတ်လိုက်တဲ့ အချက်တစ်ချက်ပါ။

ဥပမာ… ကျနော်တို့ ဟာ bat file တစ်ခုကို run နေစဉ်မှာ Program မပြီးဆုံးသေးဘဲနဲ့ CTRL+C ကို နှိပ်လိုက်လို့ ရပ်သွားရတဲ့ ဖြစ်ရပ်မျိုးမှာ ဆိုရင် Error Level ကို 3 လို့ သတ်မှတ်ပါတယ်။ အဲလိုမဟုတ်ဘဲနဲ့ Program ဟာ သူ့ လုပ်ငန်းအားလုံး ပြီးဆုံးသွားလို့ ပုံမှန် ပြီးဆုံးခြင်းမျိုးနဲ့ ဘာအနှောက်အယှက်မှ မရှိဘဲပြီးခဲ့ရင် တော့ Error Level ကို 0 ဟု သတ်မှတ်ပါတယ်။ Error Level တွေဟာ သူ့ဟာနဲ့သူ သီးခြားရပ်တည်နေတဲ့ အခါမျိုးမှာတော့ ဘာမှ ပြဿနာမရှိနိုင်ပေမယ့် (သို့) အသုံးမဝင်နိုင်ပေမယ့် သူတို့ကို CHOICE ဒါမှမဟုတ် IF ERROR LEVEL တို့နဲ့ တွဲလိုက်တဲ့ အခါမှာတော့ သူတို့ဟာ အရမ်းကို ****** လာပါလိမ့်မယ်။

CHOICE command ကတော့ Keyboard ကနေပြီးတော့ user က ရိုက်ထည့်တာတွေကို လက်ခံပြီးတော့ key တစ်ခုခု နှိပ်လိုက်တဲ့ အခါမှာ error level ကို ထုတ်ပေးမှာဖြစ်ပါတယ်။ သူ့ရဲ့ ရေးပုံရေးနည်းကတော့ CHOICE [string][/C:keys][/S][/N][/T:key,secs]အဲဒီ့ Code တွေတစ်ခုချင်းဆီရဲ့ အဓိပ္ပါယ်ကို ရှင်းပြ ပါ့မယ်။ string ဆိုတဲ့ အပိုင်းက သိပ်တော့အရေးမကြီးပါဘူး။ သူက CHOICE command run တဲ့အခါမှာ လိုချင်တဲ့ စာသားတစ်ခုခုကို ပြသပေးယုံပါ။

/C:keys ဆိုတာကတော့ User က ရိုက်လိုက်မယ့် ဖြစ်နိုင်ချေရှိတဲ့ key တွေကို ညွှန်းတာပါ။ အကယ်လို့သာ key တွေကို ကြိုတင်မသတ်မှတ်ထားဘူးဆိုရင်တော့ သူ့ရဲ့ default က Y/N ဖြစ်ပါတယ်။ အောက်က ဥပမာလေးကို လေ့လာကြည့်ရအောင်ပါ….

CHOICE /C:A1T0

အပေါ်က Code မှာ ဆိုရင်တော့ ကျနော့်တို့ဟာ A ၊ 1 ၊ T နဲ့ 0 တို့ကို ဖြစ်နိုင်ချေရှိတဲ့ key တွေအနေနဲ့ သတ်မှတ်ထားပါတယ်။ Program ကို run လိုက်တဲ့ အချိန်မှာ User က သာ ကျနော်တို့ မသတ်မှတ်ထားတဲ့ key တစ်ခုခုကို နှိပ်လိုက်မယ်ဆိုရင်တော့ User အနေနဲ့ တီ ဆိုတဲ့ အသံလေးကြားရမှာဖြစ်ပြီးတော့ Program ကတော့ သူလိုအပ်တဲ့ အဖြေမရောက်လာမချင်း ဆက် run နေပါလိမ့်မယ်။ ဒါဆိုရင်တော့ /C:keys အပိုင်းကို သိပါပြီ။

နောက်တစ်ခုအနေနဲ့ /S ကိုရှင်းပြပေးပါ့မယ်။ သူကတော့ ကျနော်တို့ ခုနက /C:keys အပိုင်းမှာ ကြိုတင်သတ်မှတ်ထားတဲ့ key တွေကို case sensitive အဖြစ် သတ်မှတ်တာပါ။ ထိုသို့သတ်မှတ်ချင်းအားဖြင့် ကျနော်တို့ Program ဟာ A (အကြီး) ဟုသတ်မှတ်ထားပါက user မှ A (အကြီး) ကို လက်ခံမရရှိမခြင်း အလုပ်မ လုပ်တော့ပါဘူး။ ထို့ကြောင့် A ချင်းတူတာတောင်မှ အလုပ်မလုပ်တဲ့ အဖြစ်ကို တွေ့ရှိရမှာပါ။

/N အကြောင်းရှင်းပြပါ့မယ်။ /N ဆိုတာကတော့ ကျနော်တို့ ခုနက code ကို run တုန်းမှာ တွေ့ရမယ့် [A,1,T,0]? ဆိုတာ ကို မတွေ့ရတော့ဘဲနဲ့ အမည်းရောက် ပြောင်ကိုဘဲတွေ့ရမှာပါ။ ထိုသို့ /N ခံခြင်းအားဖြင့် ကျနော်တို့ ဘာကို ကြိုတင်သတ်မှတ်ထားတယ်ဆိုတာ ကို မသိရတော့ပါဘူး။ ပြီးတော့ စိတ်ကြိုက်စာသားနဲ့လည်း User ဆီကနေ key တစ်ခုစီကို လက်ခံနိုင်ပါလိမ့်မယ်။ ဥပမာ…

@echo off

echo Please Choose Yes[Y] or No[N]

CHOICE /C:YN /N

အဲဒါဆိုရင်တော့့ Please Choose Yes[Y] or No[N] ဆိုပြီးတော့ သာ အမဲရောင် screen ပေါ်မှာ ပြသပေးမှာပါ။

/N ပါတာမပါတာကို ခုထိနားမလည်ရင်တော့ အပေါ်က ဥပမာမှာ /N ဖြုတ်ပြီးသာ run လိုက်ပါ။ သိရပါလိ့မ်မယ်။

/T:key အကြောင်းဆက်လက် ရှင်းပြပေးပါ့မယ်။ သူကတော့ default key ကို ရည်ညွှန်းပါတယ်။

အကယ်လို့များ ကျနော်တို့ ကြိုတင်သတ်မှတ်ထားတဲ့ key တစ်ခုခု ထဲက user က တစ်ခုမှ မရွေးဘဲ ဒီတိုင်းထားရင် အချိန်ကန့်သတ်ချက် တစ်ခုကို ရောက်တဲ့ အခါမှာတော့ /T နဲ့ program ကို default key တစ်ခုကို ရွေးခိုင်းလိုက် တာပါ။ ဥပမာအားဖြင့်….

CHOICE Choose Browser /C:NI /T:I=.5

အပေါ်က Code ကို run မယ်ဆိုရင်တော့ Choose Browser[N,I]? ဆိုပြီးပြမှာပါ.. အကယ်လို့ User က ၅ စက္ကန့်အတွင်း ဘယ် key ကိုမှ မရွေးခဲ့ဘူးဆိုရင်တော့ Program က default အနေနဲ့ I ကို ရွေးလိုက်မှာပါ။

ဒီလောက်ဆိုရင်တော့ Choice Command ကို အကြမ်းဖျင်းသိလောက်ပြီထင်ပါတယ်။ နောက်သင်ခန်းစာမှာတော့ CHOICE နဲ့ အတူ IF ERROR LEVEL ဆိုတဲ့ Command ကို အသုံးပြုပြီးတော့ error level သတ်မှတ်တဲ့ ပုံစံကို ရှင်းပြပေးပါ့မယ်။ အခုတေ့ CHOICE နဲ့ တင်ရပ်ထားပါ့မယ်။ CHOICE နဲ့ ပတ်သက်ပြီး အိမ်မှာ ကိုယ့်ဟာကိုယ် .bat လေးတွေရေးကြည့်ကြပါ ..... ပျော်ဖို့ကောင်းပါတယ်။ စောင့်မျှော်ဖတ်ရှုပေးသူများကို ကျေးဇူးတင်လျက်…

BAT File သင်ခန်းစာ (၄)

ကျနော်တို့ရဲ့ 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 လိုလည်း တိုနှံ့နှံ့ဟုတ်တော့ဘူး။ နည်းနည်းရှည်သွားဘီ။ နားလည်ဖို့လည်း လွယ်သွားပါပြီ။

ဒီဥပမာမှာဆိုရင် ကျနော်တို့ဟာ 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 တစ်ခုလုံးကို တောင် ပြောင်းပြန်လှန်လိုက်လို့ရသေးတယ်။ ကျနော်ရှင်းပြတဲ့အထဲမှာတောင် အနည်းအကျင်းပါနေပြီ။
ဒီနေ့တော့ အချိန်မရတော့လို့ ဒီလောက်ပါဘဲ။ see you later.....