Shine Wai Yan Htet
Just sharing for Information and Technology.
Friday, February 25, 2022
သိထားသင့်သော Computer Virus အမျိုးမျိုးအကြောင်း Computer Virus
Computer virus ဆိုတာ သူ့ကိုသူ attach လုပ်ထားတဲ့ program (သို့) fileတစ်ခုဖြစ်ပြီးကွန်ပျူတာ တစ်ခုကနေတစ်ခုကို ပြန့်ှနှ့ံကူးစက်နိုင်ပါတယ်လူတွေမှာ Virusကူးသလိုပဲ ပြန့်နှ့ံပြီးတော့ ကွန်ပျူတာရ့ဲ Systemကိုပုံမှန်အလုပ်မလုပ်အောင် နှောက်ယှက်မယ်၊ Windows ကို Error တွေများလာအောင်လုပ်မယ်၊ user data တွေကို ဖျက်ဆီးမယ်၊Hardware တွေ Software တွေ အရေးကြီးတဲ့ File တွေကို ဖျက်ဆီးမယ် စတာတွေကို လုပ်ဆောင်ပါတယ်..
ဒါပေမယ့် Virus အများစုဟာ e×ecutable fileတွေဖြစ်ကြပါတယ် ဉပမာ..chrome.e×e, system.bat, flashy.com စသဖြင့်ပေါ့သူတို့ဟာ ကွန်ပျူတာထဲမှာရှိနေရင်တောင်မှ သင်ကိုယ်တိုင်မှ သွားမဖွင့်ရင်/ သွားမ run မိရင်ကွန်ပျူတာကို ဘာမှ မထိခိုက်နိုင်ပါဘူးဒါကြောင့် မှတ်ထားရမှာက လူ၏ လုပ်ဆောင်ချက်မပါဝင်ပဲ Computer Virus သည်မပျံ့နှံ့ မကူးစက်နိုင်ပါ Virus ပျံ့နှံ့နိုင်တဲ့ နည်းလမ်းတွေကတော့ အမျိုးမျိုးရှိပါတယ်...forwardE-mail က attached file တွေ၊ memory stick (flash/thumb drives) တွေ၊ Full sharing ကနေ virus infected file ထည့်တာတွေ၊ အချင်းချင်း မသိပဲနဲ့ Virus infectedfile ကို share လုပ်မိတာတွေစသဖြင့်ပေါ့…
Malware
Malware ဆိုတာ အင်္းလိပ်စကား ၂ လုံး Malicious Software ကိုပေါင်းစပ်ပြီးကွန်ပျူတာပညာရှင်တွေက အလွယ်ခေါ်ကြတဲ ့virus လို program တွေပါပဲ.. အဲ့ဒီMalware ကကွန်ပျူတာပိုင်ရှင်ရ့ဲ ခွင့်ပြုချက်မရပဲ ၊ မသိစေပဲ single computer / server / computer network ထဲ ဝင်ပြီး ကွန်ပျူတာ System ပျက်ဆီးစေနိုင်အောင် ၊ အနှောက်အယှက်ဖြစ်အောင်ရေးလေ့ရှိကြပါတယ်..Malware တစ်ခုမှာ Computer Virus , Worms, Trojan Horses, Most Rootkits, Spyware, Dishonest Adware, Crimeware and Other Malicious and Unwanted Softwareတွေပါဝင်လေ့ရှိပါတယ်..
Worm
Worm ဆိုတာက virus နဲ့ဆင်တူအောင်ရေးထားကြတာပါပဲ.. virus တစ်ခုရဲ့ Sub-class လို့လည်းခေါ်လို့ ရပါတယ် သူကတော့ Virus လို လူကဖြန့်မှ ပျံ့တာမျူိးမဟုတ်ပဲ သူပါသူ Computer networkထဲမှာရှိတဲ့ အခြား ကွန်ပျူတာတွေကို လူရဲ့လုပ်ဆောင်ချက် လုံးဝမပါပဲနဲ့ပျံ့နှံ့စေတာဖြစ်ပါတယ် အကြီးမားဆုံး အနတရာယ်ကတော့ သူက သူ့ပါသူ System fileတစ်ခုလို အယောင်ဆောင်ပြီးသူ့ကိုယ်သူ သန်းပေါင်း ၁ဝဝ လောက် copy ပွားနိုင်ပါတယ်၊ Hard disk ရဲ့ used
space ကို များလာစေတယ်..Computer ရဲ့ System memory usage တွေများလာစေတယ်.. network bandwidthတွေကိုတက်လာစေတယ်... Run ထားတဲ့ program တွေကို Not Responding ခဏခဏဖြစ်လာစေတယ်..လူသိများတဲ့ Worm ကတော့ Blaster worm ပါ.. Blaster worm က Computer System ထဲမှာရှိနေပြီဆိုတာနဲ့ Cracker တွေက ကွန်ပျူတာကို Remote လုပ်ပြီးထိန်းချုုပ်နိုင်အောင် ရေးထားပါတယ်..
Trojan Horse
Trojan horse ကို Trojan လို့လည်းခေါ်ပါတယ်.. ပုံမှန်အားဖြင့် အသုံးဝင်တဲ့Software တွေမှာ ထည့်ထားတတ်ကြပါတယ်... ဥပမာပေါ့... Game တစ်ခုကို Installပြီးဆော့နေပေမယ့် အခြားတစ်ဖက်မှာ Hacker တွေ Cracker တွေက ကွန်ပျူတာထဲကိုဝင်မွေနေလို့ရအောင်လုပ်ပေးနေတယ်.. အဲဒီတော့ အဲဒီ Game ကို Trojan horseလို့ခေါ်တာပေါ့ .. တစ်ကယ်တော့ Game က တရားဝင်ထုတ်ထားတဲ့ Game ပဲ.. ဒါပေမယ့်Virus infected ဖြစ်နေတဲ့ Gameလို့ပြောရလိုဖြစ်နေတာပေါ့..Trojan horse တစ်ခုဟာ အောက်ပါအချက်များကို လုပ်ဆောင်ပေးနိုင်ပါတယ်..
♦ Remote Access
♦ Data Destruction
♦ Downloader/dropper
♦ Server Trojan (Proxy, FTP , IRC, Email, HTTP/HTTPS, etc.)
♦ Disable security software
♦ Denial-of-serviceattack(Dos)
Spyware
သူကတော့ သူခိုးပေါ့နော်.. သူက ကွန်ပျူတာကို ထိခိုက်ဖျက်ဆီးချင်မှဖျက်ဆီးမယ်.. ဒါပေမယ့် ကွန်ပျူတာမှာသုံးနေတဲ့ user ရ့ဲ အမျိုးမျိုးသောအချက်အလက်တွေ၊ အရေးကြီးတဲ့ Data တွေကို သူ့ရ့ဲ Main server တစ်ခုခုကို နေ့စဥ်သတင်းပို့ပေးနေတယ်...Spyware တွေက များသောအားဖြင့် Web browser တွေကနေ ဝင်နိုင်ပါတယ်... ပြီးရင် သူက Browser home page ကိုပြောင်းထားတတ်ပါတယ်..သင့်ကို Error message တွေအမျိုးမျိုးပြမယ်..(ဥပမာ- သင့်ကွန်ပျူတာမှာ problemsတွေများနေပြီ..အဲဒါတွေပြင်ချင်ရင် အောက်ကခလုတ်ကို နှိပ်ပါ) စသဖြင့် ဆွဲဆောင်မယ်၊ သင်က link တစ်ခုကို click လိုက်ပေမယ့် သင်မဖွင့်ပဲနဲ့ အခြား Porn Site တွေ အလိုလိုပွင့်လာမယ်စသဖြင့်ပေါ့... တစ်ချို့ လူတွေက http cookie တွေကို Spyware တွေလို့ ထင်ကြပါတယ်.. တကယ်တော့မဟုတ်ပါဘူး ဒါပေမယ့် အဲဒိ cookie ထဲမှာ Spyware က trackလုပ်နိုင်တဲ့ Data တွေပါလာတတ်တာကြောင် ့ Spyware Remover တော်တော်များများက Cookie တွေကို ဖျက်ပစ်ကြတာပါ … Spyware ကိုကာကွယ်ချင်ရင်တော့ pop-upsကျလာတဲ့linkတွေကိုရှောင်တာကောင်းပါတယ်...
Adware
Adware ဆိုတာကတော့ Advertising-supported software (သို့) software package တစ်ခုဖြစ်ပါတယ်.... သူကတော့ Screen မှာ Automatic ပေါ်လာအောင်ဖန်တီးထားပြီး Download အတင်းလုပ်ခိုင်းပါတယ်...အချို့သောAdware များဟာ Spyware များဖြစ်တတ်ကြပါတယ်...
Crimeware
Crimeware ဆိုတာကတော့ Spyware, Adware, Malwareအမျိုးအစားတွေထဲမှာပါပါတယ်.. သူ့ရဲ့ရည်ရွယ်ချက်ကတော့ financial crimeတွေအတွက်ရည်ရွယ်ပြီးရေး ကြတာများပါတယ်..သူက user password တွေ၊ links တွေ၊
အချက်အလက်တွေ ကို မှတ်သားထားနိုင်ပြီး သူ့ကို Run ထားတဲ့လူကပြန်ဖွင့်ကြည့်ပြီး user data တွေကို ခိုးယူနိုင်တာပေါ့.... ဥပမာပြောရရင်.. ခုခေတ်စားနေတဲ့ key logger တို့ .. keystroke logging software တို့ဟာCrimeware အမျိုးအစားတွေပဲ ဖြစ်ပါတယ်..
အထက်ပါ ComputerVirus အကြောင်းများကို စာဖတ်သူများ ဗဟုသုတ ရစေရန် mmCERT မှ ကူးယူဖော်ပြလိုက်ရခြင်းဖြစ်ပါသည်။ ကျန်းမာကြပါစေခင်ဗျာ ....
Wednesday, February 9, 2022
How to enable or disable CTRL+ALT+DEL Secure Logon in Windows 11&10
ဒီနေ့ ကျနော် ဆွေးနွေးပေးသွားမယ့် အကြောင်းအရာလေးကတော့ Microsoft Windows တွေမှာ windows စတက်တက်ခြင်းမှာ တွေ့နေရတဲ့ CTRL+ALT+DEL ဆိုတာလေး အကြောင်းဘဲဖြစ်ပါတယ်။ CTRL+ALT+DEL ပေါ်နေရခြင်းက ကျနော်တို့ သုံးနေတဲ့ OS မှာ secure logon ကို ဖွင့်ထားခြင်း/ ပွင့်နေခြင်းကြောင့် ဖြစ်ပါတယ်။
တချို့က CTRL+ALT+DELနှိပ်စရာ မလိုဘဲ login box ကို တန်းရောက်ချင်တာ ရှိသလို တချို့ကျတော့ secure ဖြစ်တာလေးကိုမှ ကြိုက်ကြတာရှိတက်ပါတယ်။ ဒီတော့ ကျနော်ဆွေးနွေးမယ့် အကြောင်းအရာက CTRL+ALT+DELနှိပ်စရာ login box ကို တန်းရောက်ချင်တဲ့သူတွေကို ရည်ညွန်းပါတယ်။
ကျနော်သိထားတဲ့ နည်းလမ်း ၃ခုကို မျှဝေချင် ပါတယ်။ အဲ့တာတွေကတော့
၁. Control Panel
၂. Group Policy Editor
၃. Registry Editor တွေကိုသုံးပြီး ဖြေရှင်းသွားမှာ ဖြစ်ပါတယ်။
Control Panel ကို သုံးမယ်ဆိုရင်တော့ User Account (Advanced) မှာ ပြင်ပေးရမှာဖြစ်ပါတယ်။ လုပ်ရမှာကတော့
- Open the Windows Run Box (WIN+R)
- Type netplwiz and enter
အောက်မှာ ပြထားတဲ့ အတိုင်း secure sign-in box မှာ Require users to press Ctrl+Alt+Delete ကို click ပေးထားရင် ဖြုတ်ပေးရမှာဘဲ ဖြစ်ပါတယ်။
အပေါ်က နည်းလမ်းနဲ့ အဆင်မပြေဘူးဆိုရင်တော့
Group Policy မှာအောက်ပါအတိုင်း လုပ်နိုင်ပါတယ်။
- Open the Windows Run Box (WIN+R)
- Type secpol.msc and enter
- In the left pane,
Select Local Policies > Security Options
- Now in the right pane,
double click on Interactive logon: Do not require CTRL+ALT+DEL
- Select Enable
- Click Apply/OK and Exit
ဒါတွေပြီးသွားရင်တော့ windows ကို restart ချလိုက်ပါ။ မဂ်လာရှိသော နေ့ရက်လေးဖြစ်ပါစေ ခင်ဗျာ .......
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 လို့ရိုက်ပေးလိုက်ရင် ရပါပြီ ။ အားလုံးဘဲ ကျန်းမာကြပါစေ ........
ဖြေရှင်းလို့ရတဲ့နည်းလမ်းကတော့ ကျနော်သိသလောက်ဆိုရင် ၄ ခုလောက်ရှိပါတယ်, ၁. 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 စျေးများကျလို့ စာမေးပွဲတွေ ဖြေဆိုနိုင်ကြပါစေ။
သူ့ကိုတော့ ကျနော်တို့ဟာ 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 လုပ်ကြည့်ပါမယ်။
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 နဲ့ ပတ်သက်လို့ ဆက်ရေးပေးဖို့ စာပြန်ဖတ်နေပါတယ်။ ခဏနေရင်ပြန်တွေ့မယ်နော် :) …
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 လေးတွေရေးကြည့်ကြပါ ..... ပျော်ဖို့ကောင်းပါတယ်။
စောင့်မျှော်ဖတ်ရှုပေးသူများကို ကျေးဇူးတင်လျက်…
Subscribe to:
Comments (Atom)