Friday, November 12, 2021

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

ကျနော် တို့ရဲ့ TuT ကို ဆက်လက်ဆွေးနွေးကြရအောင်….

ဒီနေ့မှာတော့ Condition စစ်ခြင်းကိစ္စရပ်တွေနဲ့ ပါတ်သက်ပြီးဆွေးနွေးပေးသွားမှာဖြစ်ပါတယ်။ IF အကြောင်းကနေစတင်ဆွေးနွေးပါ့မယ်။ အရင်ရက်တွေက IF ကို Coding ထဲမှာ ထည့်သုံးခဲ့ဖူးပေမယ့် ကျနော် အသေးစိတ် ရှင်းပြခြင်းမရှိခဲ့ပါဘူး။ အဲဒီ့အတွက် If နဲ့ ပါတ်သက်ပြီးကျယ်ကျယ်ပြန့်ပြန့်သိနိုင်အောင် အခု ရှင်းပြပေးပါ့မယ်။ အရင်ရက်တွေက ကျနော်ရေးခဲ့တဲ့ ဟာတွေက Ref မရှိပေမယ့် ဒီတစ်ခါရေးတဲ့ဟာကတော့ ကျနော်ကိုယ်တိုင်လည်း ပြန်လည်စိတ်ပါ လာပြီး IF နဲ့ ပါတ်သက်လို့ အသေးစိတ်ရေးပေးချင်တဲ့ စိတ်လည်း ရှိတာကြောင့် Google ကနေရှာဖွေပြီး Ref လုပ်ပေးလိုက်ပါတယ်။

ကျနော်တို့ရဲ့ Batch File Programs တွေကို Intel ရှိစေဖို့နဲ့ ပိုမို အသုံးတည့်စေလိုတဲ့ အခါတွေမှာ If statement တွေကိုအသုံးချနိုင်ပါတယ်။ သူ့ကို အသုံးချခြင်းအားဖြင့် ကျနော်တို့ သတ်မှတ်ထားတဲ့ parameter တွေ Variable တွေကို စစ်ပြီးတော့ သက်ဆိုင်ရာ Task တစ်ခုစီကို အလုပ်လုပ်စေတာမျိုးတွေ ကိုလုပ်နိုင်ပါတယ်။ ဒါတင်မက သေးပါဘူး သူက ကျနော်တို့လိုချင်တဲ့ File ကို လိုချင်တဲ့နေရာမှာ ရှိမရှိကိုပါ စစ်ပေးနိုင်ပါသေးတယ်။ ခြုံငုံပြောရမယ်ဆိုရင်တော့ If ကို Variable တွေကို စစ်တဲ့ အခါမှာ သုံးတယ်လို့ အကြမ်းဖျင်းမှတ်နိုင်ပါတယ်။

IF ဖြင့် File ရှိမရှိကိုစစ်ဆေးခြင်း

File တစ်ခုကို ကျနော်တို့ လိုချင်တဲ့ နေရာမှာ ရှိမရှိကို စစ်ချင်တယ်ဆိုရင် အသုံးပြုလေ့ရှိတယ် If ရဲ့ ရေးပုံရေးနည်းကတော့…

IF EXIST FILENAME Command

ကျနော့် ရေးသားပုံအတိုင်း If ရဲ့ ရေးပုံရေးနည်းကို နားလည်လွယ်စေဖို့ ဥပမာနဲ့ ရှင်းပြပေးပါ့မယ်။ အောက်မှာ ပေးထားတဲ့ Code ကို Notepad ထဲမှာ ကူးထည့် လိုက်ပါ….

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

အပေါ်က Code ရဲ့ အလုပ်လုပ်မယ့်ပုံစံကို လေ့လာကြည့်ရအောင်…

သူက c:\autoexec.bat ဆိုတဲ့ file ရှိမရှိကို စစ်ပါမယ် ၊ အကယ်လို့ရှိခဲ့မယ်ဆိုရင်တော့ echo နဲ့ ‘The File Exists at that place’ ဆိုပြီးတော့ ဖော်ပြပေးမှာဖြစ်ပြီး တော့ ၊ မရှိခဲ့ဘူးဆိုရင်တော့ ဘာအလုပ်မှဆက်လုပ်မှာ မဟုတ်ပါဘူး။Code ကို မရှင်းပြတော့ ဘဲ Program အလုပ်လုပ်မယ့် ပုံစံကို ရှင်းပြလိုက်တာ နားလည်လွယ် မယ်ထင်လို့ ကျနော် ပုံစံပြောင်းပြီးရှင်းပြရတာပါ။

အခုကျနော်တို့ အပေါ်က ဥပမာကို ပြန်ကြည့်လိုက်ပါ။ အကယ်လို့ File သာ မရှိတော့ရင် သူ အလုပ်မလုပ်တော့ပါဘူး။ အဲဒီ့လို မဖြစ်စေဖို့အတွက် ကျနော်တို့ဟာ else ပုံစံမျိုး အရေးအသားတစ်ခုထည့်ရေးလို့ရပါတယ်။ စဉ်းစားပုံကတော့ အကယ်လို့များ ကျနော်တို့ လိုချင်တဲ့ file ရှိမယ်ဆိုရင် အလုပ်တစ်ခု လုပ်ခိုင်းပြီးတော့ ၊ မရှိခဲ့ဘူးဆိုရင် နောက်အလုပ်တစ်ခုလုပ်ပါ ဆိုတာကို အရင်ရက်က ကျနော်ရေးပေးဖူးတဲ့ goto command ကို အသုံးပြုသွားမှာပါ။

ဘယ်လိုရေးကြမယ်ဆိုတာ နားလည်လွယ်စေဖို့ အောက်မှာ ရှိတဲ့ ဥပမာလေးကို လေ့လာကြည့်ရအောင်….

@echo off

IF EXIST C:\syko.txt goto SYKO

goto end

:SYKO

echo SYKO exists

pause

:end

echo SYKO doesn’t exist

pause

အပေါ်က ဥပမာကို Run လိုက်မယ်ဆိုရင် အလုပ်လုပ်မယ့် ပုံစံကတော့….

အကယ်လို့ C:\syko.txt သာရှိမယ်ဆိုရင် ကျနော်တို့ဟာ goto ကို သုံးပြီးတော့ SYKO ဆိုတဲ့ အပိုင်းတစ်ခုဆီလွှဲထားခဲ့ပါတယ်။ ဒါဆိုရင် File သာရှိရင် အဲဒီ့ SYKO ဆိုတာကို လုပ်မှာပါ။အဲ.. အကယ်လို့များ file သာမရှိခဲ့ဘူးဆိုရင် စစချင်းရေးခဲ့တဲ့ Program မှာ လိုရပ်သွားမှာဆိုးတဲ့ အတွက် goto end ဆိုပြီးတော့ နောက်တစ်လိုင်းစစ်ခဲ့ပါတယ်။ ထိုသို့ စစ်ခြင်းအားဖြင့် File မရှိတော့ရင် Program ရပ်သွားချင်းမှ ရှောင်ဖယ်နိုင်မှာဖြစ်ပြီးတော့ Program က နောက်တစ်လိုင်းကို အလိုလိုဆင်းဖတ်ပြီးတော့ end ဆိုတဲ့ အပိုင်းကို ရောက်သွားမှာပါ။ ဒါဆိုရင် User အတွက်လည်း doesn’t exist ဆိုတဲ့ message ကို ပြန်လည်မြင်စေမှာဖြစ်ပါ တယ်။

ဒီလောက်ဆိုရင် IF နဲ့ ဖိုင်ရှိတာကို စစ်ပုံစစ်နည်းနားလည်ပြီလို့ ထင်ပါတယ်။

ဆက်လက်ပြီးတော့ File မရှိတာကို စစ်ကြည့်ကြရအောင်

ရေးသားပုံကတော့ ခုနကနဲ့ တူတူပါဘဲ။

IF NOT EXIST FILENAME Command

ဥပမာလေးရေးကြည့်ရအောင်

IF NOT EXIST c:\syko.txt ECHO It doesn’t Exist

Code အလုပ်လုပ်ပုံကို အပေါ်မှာရှိတဲ့ exist နဲ့ တူတဲ့အတွက်ထပ်မရှင်းပြတော့ပါဘူး။

ဒီလောက်ဆိုရင် NOT ထည့်သုံးတာလည်း သိလောက်ပြီလို့ထင်ပါတယ်။

************************************************************************

သတိပြုရန်၊၊ ၊၊ ကျနော်တို့ဟာ တစ်ချိန်တည်းမှာပင် IF ကို အခါခါသုံးပြီးတော့ File ရှိမရှိစစ်လို့ရတယ်ဆိုတာကို သိစေလိုပါတယ်။ အသုံးပြုလို့ရအောင် တစ်ကြောင်း ရေးပြပါ့မယ်။

>>> IF EXIST c:\autoexec.bat IF EXIST c:\autoexec.bak ECHO Both Exist <<< ***********************************************


************** အပေါ်မှာကျနော် ရေးပြခဲ့တာတွေက File ရှိမရှိကိုဘဲ စစ်လို့ အဆင်ပြေတာပါ။ အကယ်လို့များ ကျနော်တို့ဟာ directories တစ်ခုရှိမရှိကို စစ်ချင်ပြီဆိုရင်တော့ အခက်တွေ့ပါပြီ။ အဲဒီ့လို အခြေအနေမျိုးမှာတော့ NULL ဆိုတာလေးက အသုံးတည့်ပြီပေါ့ဗျာ။ NULL ဆိုတာ ကတော့ ဘာမှမရှိတာပါ။ DOS ကနားလည်တာကတော့ Directory တစ်ခုမှာ NULL ဆိုတဲ့ Folder တစ်ခုရှိပါတယ်တဲ့။ (ကျနော်လည်းမသိဘူး Google ပြောတာ။ ) ဒါဆို ကျနော်တို့ c:\windows ဆိုတာများရှိလေမလားလို့ စစ်ဆေးကြည့်ရအောင်လားဗျာ။ အဲဒီ့လို စစ်ဆေးဖို့ကတော့ လွယ်လွယ်လေးပါ အပေါ်မှာ ကျနော်တို့ ရေးခဲ့သလို IF EXIST ကို ဖြည့်ရေးသွားရုံပါ။ အောက်က Code ကို ကြည့်လိုက်ပါ။ IF EXIST c:\windows\nul ECHO c:\windows exists အဲဒီ့လိုနည်းမျိုးနဲ့ဘဲ Drive တစ်ခုဟာ ခွင့်ပြုထားတဲ့ Drive ဟုတ်မဟုတ်စစ်နိုင်ပါသေးတယ်။ အောက်က Code ကို ကြည့်ကြည့်ပါ။ IF EXIST c:\io.sys ECHO Drive c: is valid ဒီ လောက်ဆိုရင် File ရှိမရှိကို IF နဲ့ စစ်ခြင်းနဲ့ ပတ်သက်လို့ အားလုံး စုံသွားပြီဖြစ်လို့ နောက်တစ်ခန်းမှာ User ရိုက်လိုက်တဲ့ Parameter တွေကို စစ်ပြီးတော့ အလုပ် လုပ်သွားပုံကို ရှင်းပြပါ့မယ်။

အခုတော့ နားလိုက်ပါဦးမယ်။

No comments:

Post a Comment