Friday, November 12, 2021
BAT File သင်ခန်းစာ (၃)
************** အပေါ်မှာကျနော် ရေးပြခဲ့တာတွေက 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 တွေကို စစ်ပြီးတော့ အလုပ် လုပ်သွားပုံကို ရှင်းပြပါ့မယ်။ အခုတော့ နားလိုက်ပါဦးမယ်။
BAT File သင်ခန်းစာ (၂)
ကျနော်တို့ TuT ကို ပြန်စလိုက်ရအောင်….
ဒီတစ်ခါတော့ Features နည်းနည်း စုံစုံလင်လင်ကို တင်ပြပေးပါ့မယ်။ ကျနော်ရေးတာက အလွယ်အဆင့်ကနေ အခက်အဆင့် ကို သွားနေတာတော့ မဟုတ်ဘူး
နော်။ ကျနော့် မှာ ကိုးကားစရာစာအုပ်က မရှိတော့လို့ ဟိုရောက်ဒီရောက်နဲ့ ကျနော် သတိရပြီးတော့ သိသေးသမျှတွေရေးပေးနေတာပါ။ ဖတ်ရတာ အခက်အခဲ
တော့ နည်းနည်းရှိမယ်လို့ထင်တယ်။ နားလည် ပေးမယ်လို့ထင်ပါတယ်။
ဟုတ်ကဲ့ပါ အခု ကျနော် ရေးပေးမှာကတော့ Windows Application တစ်ခုကို ဘယ်လို ခေါ် Run မလဲဆိုတာပါ
အောက်မှာပေးထားတဲ့ Code ကို Notepad မှာရိုက်ထည့်ကြည့်ပါ့မယ်…
@echo off
echo I am testing to call Notepad.exe
start /MIN notepad
pause
အဲဒါကို save ပြီးတော့ Run မယ်ဆိုရင်တော့ အောက်မှာ ပြထားတဲ့ အတိုင်းပေါ်လာပါလိမ့်မယ်။
I am testing to call Notepad.exe
(အဲဒါလာပြီးရင် Notepad က minimized အနေအထားနဲ့ ပေါ်လာပါလိမ့်မယ်။ /MIN နေရာမှာ /MAX လို့ထားရင်တော့ maximized အနေအထားနဲ့ ပေါ်မှာပါ)
Press any key to continue…
နောက်တစ်ဆင့်အနေနဲ့ batfile ထဲကနေ ထွက်ဖို့ အချိန်သတ်မှတ်ပေးကြည့်ရအောင်
အောက်မှာပေးထားတဲ့ Code လေးတွေကို Notepad ထဲမှာရေးပေးပါ
@echo off
echo i am trying timeout
set wait=0
:pause1
set /a wait=%wait%+1
if %wait% leq 1000 goto pause1
echo IT WORKED!!!
pause
ဒီ Code တွေကို နားမလည်ဘူးဆိုရင်တော့ Copy Paste သာလုပ်ပြီးတော့ Notepad ထဲကို ထည့်လိုက်ပါတော့။
ကျနော် အပေါ်မှာရေးဖူးတဲ့ နှစ်ခုထဲမှာ set အကြောင်း အနည်းငယ်ပါပြီးတော့ if နဲ့ condition စစ်တာလည်း ပါသလို
:pause1 လိုမျိုး Function ခွဲရေးတာလည်း ဘာဆိုတာ ပါပါတယ်။ အဲဒီ့တော့ ဒါကို နားမလည်ရင်လည်း အဲဒါလေးတွေ ပြန်ကြည့်လိုက်ရင် အကြမ်းဖျင်းတော့
သဘောပေါက်မှာပါ။% တွေ /a တွေနဲ့ ကျန်တဲ့ နားမလည်တာတွေကို ချန်ထားခဲ့ပါ။ အကယ်လို့ ကျနော် အချိန်ရရင် Parameter တွေ အကြောင်းကို ကျယ်ကျယ်
ပြန့်ပြန့် ထပ်ဆွေးနွေးပေးပါ့မယ်။ ခုတော့ ဒီတိုင်း သဘောပေါက်ရုံလောက်လေး ထားပြီး အဲဒါလေးကို Save ပြီးရင် Run လိုက်ပါ။ အောက်မှာ ပြထားတဲ့ အတိုင်း
ပေါ်လာပါလိမ့်မယ်…
I am trying timeout
(ပြီးရင်တော့ စက္ကန့် နည်းနည်းလောက်စောင့်ရပါလိမ့်မယ်) (အဲဒါကတော့ :pause1 ထဲမှာ ရေးထားတဲ့ Code ကြောင့်ပါ။)(အဲဒါကို စောင့်ပြီးရင်တော့ နောက်
တစ်ကြောင်းလာပါလိမ့်မယ်)
IT WORKED!!!
Press any key to continue…
ဒါဆိုရင်တော့ စက္ကန့် ဖြစ်ဖြစ် မိနစ်ဖြစ်ဖြစ် သတ်မှတ်ပြီးတော့ batch file run တာကို ရပ်ခြင်းအား ကျနော်တို့ စမ်းသတ်ပြီးပါပြီ။ ဘယ်လို အလုပ်လုပ်တယ်ဆိုတာ
လည်း နားလည်မယ်လို့ထင်ပါတယ်။
ကျနော် နောက်ထပ် တစ်ဆင့်အနေနဲ့ TIME ဆိုတဲ့ Command အကြောင်းကို ရှင်းပြပေးပါ့မယ်
အောက်မှာ ပေးထားတဲ့ Code တွေကို Notepad ထဲမှာ ရေးလိုက်ပါ…
@echo off
echo Hello…. What time it is!!!
TIME 12:00
echo oHH it is 12:00
pause
အဲဒါကို Save ပြီး Run မယ်ဆိုရင်တော့ အောက်မှာ ပြထားသလို မြင်ရပါလိမ့်မယ်…
Hello…. What time it is!!!
oHH it is 12:00
ဒါဆိုရင် TIME က ဘာအလုပ်လုပ်လည်း ဆိုတာ သိပြီလို့ထင်ပါတယ်။ စက်ရဲ့ အချိန်ကို ပြောင်းပေးတာပါ။
နောက်တစ်ဆင့်အနေနဲ့ ကျနော်တို့ DOS ထဲမှာ ပြမယ့် စာသားတွေနဲ့ နောက်ခံတွေ ကို အရောင်လေးတွေနဲ့ အလှဆင်ကြည့်ကြပါမယ်။
အောက်မှာ ပေးထားတဲ့ Code တွေကို Notepad ထဲကူးပြီး Save ပြီး Run လိုက်ပါ။
@echo off
echo I am trying the colors
pause
color 04
echo testing
pause
color f
echo again
pause
color 4f
echo DONE
pause
Run လိုက်ရင် ဘယ်လိုဖော်ပြတယ်ဆိုတာတော့ ကိုယ့်ဟာကိုယ် လုပ်ကြည့်လိုက်ပါ။ ကျနော် Code တွေကို ဘဲရှင်းပြပေးပါတော့မယ်။
color ဆိုတာကတော့ အရောင်သတ်မှတ်တယ်ဆိုတာ လူတိုင်း သိပါလိမ့်မယ်။ သူ့နောက်မှာ ထည့်တဲ့ Code တွေကို ရှင်းပြပါ့မယ်။
04= background black နဲ့ font ကို red ထားတာပါ
f = font ကို white ထားတာပါ
4f = background red နဲ့ f ကို white ထားတာပါ
ပိုပြီး အသေးစိတ်သိချင်ရင်တော့ Run>>cmd>>color /? ဆိုပြီးရိုက်လိုက်ပါ။
0=balck
1=blue
2=green
3=aqua
4=red
5=purple
6=yellow
7=white
8=gray
9=light blue
a=light green
b=light aqua
c=light red
d=light purple
e=light yellow
f=bright white
အဲဒီ့လိုဖော်ပြပါလိမ့်မယ်။ အဲဒါတွေကို ခုနက ကျနော်တို့ သုံးသလိုမျိုး color 9f စသည်ဖြင့် တွဲသုံးနိုင်ပါတယ်။
ရှေ့မှာထားတဲ့ ဟာက Back Color ဖြစ်ပြီးတော့ နောက်ကဟာက Font Color ဖြစ်ပါတယ်။
ဒီလောက်ဆိုရင်တော့ Color တွေ အကြောင်းသိနိုင်ပါပြီ။ ဉာဏ်ရှိသလို ချဲ့ထွင်အသုံးချ သွားနိုင်ပါတယ်။
အခုနောက်တစ်ဆင့်အနေနဲ့ Title ပြောင်းတာကို ပြောပြပေးပါ့မယ်
အောက်က Code တွေကို Notepad ထဲမှာရေးပြီး Save လိုက်ပါ။
@echo off
title Myanmar IT Resource
echo Trying to change the title
pause
အဲဒါကို Run လိုက်ရင်တော့ Title Bar မှာ Myanmar IT Resource ဆိုပြီးဖော်ပြပါလိမ့်မယ်
နောက်တစ်ဆင့် အနေနဲ့ Shutdown နဲ့ Restart ကို စမ်းကြည့်ကြပါမယ်။
@echo off
start C:\Windows\RUNDLL.EXE user.exe,exitwindowsexec
exit
အဲဒီ့ အပေါ်ကကောင်လေးကို save ပြီး Run မယ်ဆိုရင်တော့ Restart ကျသွားပါလိမ့်မယ်။
@echo off
start C:\Windows\RUNDLL32.EXE user,exitwindows
exit
အပေါ်ကဟာလေးကို Run ရင်တော့ Shutdown ပါ.
နောက်ထပ် နည်းတွေလည်း ရှိပါသေးတယ်။ တခြားနည်းတွေက လူတိုင်းသိပြီးသားတွေမို့လို့ ဒီနည်းလေးကို ဖော်ပြပေးလိုက်တာပါ။ code တွေကတော့ ရှင်းရှင်း
လင်းလင်းတွေ မို့လို့ လူတိုင်းနားလည်မယ်ထင်လို့ ထပ် မရှင်းပြတော့ဘူးနော်။ နားမလည်လောက်စရာလည်း မပါဘူးလို့ထင်ပါတယ်။ဒီနေ့တော့ ကျနော့် TuT ကို
ဒီလောက်နဲ့ ရပ်နားပါရစေ။ နောက်နေ့တွေမှာ For နဲ့ Looping ပတ်တာကို အသေးစိတ်ရှင်းပြသွားပါမယ်။ လိုအပ်တာရှိရင်လည်းဖြည့်စွက်ပြောပေးကြပါ။
စာဖတ်သူ အားလုံးကို ကျေးဇူးတင်စွာဖြင့် ..... 😍😍
Wednesday, November 3, 2021
Bat file အလွယ်တကူ ရေးသားနည်း သင်ခန်းစာ (၁)
Bat files အကြောင်းကို သိချင် လေ့လာချင်တဲ့ သူငယ်ချင်းများအတွက် ကိုယ်တိုင်းရေးမဟုတ်ပေမဲ့ ကျွန်တော်ကိုယ်တိုင် မသိခင်က စလေ့လာမိခဲ့တဲ့ ဆိုဒ်မှ မှတ်စုအနေနဲ့ ကူးထားခဲ့တာလေးပါ။ အဲ့ဒီဆိုဒ်ကို ညွန်းချင်ပေမဲ့လည် လက်ရှိ ဆိုဒ်လိပ်စာကလည် မတွေ့တော့တာကြောင့် စာရေးသားသူအနေနဲ့ နားလည် ပေးမယ်လို့ ယုံကြည်ပါတယ်။ ဒီသင်ခန်းစာကို ကျွန်တော် ကိုယ်တိုင်း ရေးသားထားတာ မဟုတ်တာကိုတော့ ရိုးသားစွာ ဝန်ခံပါတယ်။ ဒါကြောင့် မသိမနားလည် ရင်တော့ မေးမြန်းနိုင်ပါတယ်။ အကျွမ်းကျင်ဆုံး အဆင့် မဟုတ်ပေမဲ့ တက်နိုင်သမျှ ရှင်းပြပေးပါမည်။ မှုရင်း အရေးအသား အတိုင်း မပြင် မဖြည့်စွတ်ဘဲ တင်ပြ လိုက်ပါတယ်။ ကောင်းသောအသုံးပြုခြင်းနှင့် အသုံးပြုစေလိုပါတယ်။
ကဲစလိုက်ရအောင်ဗျာ 1. @echo off , @echo on @echo off ဆိုတာ စာတန်းမပေါ် စာတန်းဖျောက် @echo on ဆိုတာ file location တွေ အကုန်ပါ 2. pause pause ဆိုတာ ဖော်ပြချင်တဲ့ စာတွေရဲ့ အဆုံးမှာ ထည့်ပေးရတယ်။ press any key to continuous မှာ ဆုံးတယ်။ 3. cls , msg (cls – Cleaner Screen , msg – Message ) Cls ကတော့ နောက်မှာ echo လိုက်တယ်ပြီးရင်တော့ ထည့်ချင်တဲ့ စာသားထည့်မယ်။ key တစ်ခုခုကို နှိပ်လိုက်ပြီဆိုတာနဲ အရင်ကထည့်ထားတဲ့ @echo on off က စာတွေပျောက်ပြီး Cls နောက်က echo စာတွေ အစားထိုးတွေ့ရမယ်။ Msg ကတော့ သူ့နောက်မှာ space * space လိုက်တယ် ပြီးရင်တော့ ထည့်ချင်တဲ့ စာသားထည့်လိုက်ပါ။ key နှိပ်လိုက်ရင် Message Box တစ်ခုပုံစံနဲ့ ကျလာပါမယ်။ 4. rem , start Rem ဆိုတာကတော့ တကယ်တော့ remark ဖြစ်ပါတယ်။ bat file run နေတုန်းမှာ မမြင်ရပါဘူး။ * သူက ပုံဖွင့်ဖို့ file လမ်းကြောင်းရှာပေးတာဖြစ်နို်င်ပါတယ်။* Start ဆိုတာကတော့ ကိုယ်ဖွင့်ချင်တဲ့ file ကို ဖွင့်လိုက်တာဖြစ်ပါတယ်။ start နောက်မှာ file name and file type ထည့်ပေးရပါတယ်။ နောက်ဆုံးမှာတော့ pause ။ 5. go , set and ifBAT File သင်ခန်းစာ (၁) ဘာရယ်လို့မဟုတ်ပါဘူး ဒီနေ့ဘာတင်ရ မလဲစဉ်းစားရင်း အခြေခံကစကြတာပေါ့။ ပထမဆုံး notepad ကိုခေါ်ပါ။batch file ရေးနည်းက programmingအာလုံး .bat နဲ့ဆေ့ရမယ်။ ဥပမာ name.bat (၁)။ code: start start ဆိုတာဟာ စတင်ချင်းပါဒါတော့လူတိုင်းသိပါတယ်။ဒါပေမယ့် .bat file ရေးတဲ့အခါမှာ တော့ကိုယ်က ဖွင့်စေချင်တာကို ခိုင်းတဲ့ ကွန်မန်း ဖြစ်ပါတယ်။ စရေးကြည့်ရအောင်။ @echo off start notepad ဒါက notepad ကိုဖွင့်ဖို့လို့ခိုင်းစေတာဖြစ်ပါတယ်။ နောက်တစ်မျိုး @echo off start www.example.blogspot.com ဆိုက်တစ်ခုကိုဖွင့်တာပါ။ (၂)Loop (repeat) code: :X goto:X စမယ် ဒါကထပ်ခါထပ်ခါသွားတာလို့ခေါ်တယ်။သုံတတ်ရင် virus ပေါက်စတစ်ကောင်ဖြစ်နိုင်တယ်။စမယ်။
@echo off :X start notepad goto :X နည်းနည်းရှင်းပြပါမယ်။ @echo off က အမြင်ရှင်းအောင်လို့ display မရှပ်အောင်လို့ လူတိုင်းနားလည်ပြီးသားပဲ။ :X ကတော့ subprogram တစ်ခုကိုအမည်ပေးလိုက်တာပါ။ မြန်မာလိုပြောရင် အပိုဒ်ခွဲတစ်ခုပေါ့။ ဒါဆိုရင် အတော်နားလည်လောက်ပါပြီ :Xဆိုတဲ့ subprogram ကဘာကိုဖွင့်မလဲဆိုရင် notepad ကိုဖွင့်မှာပါ။ goto ကတော့ loop ပြန်ခေါ်တာပါ။ကျွန်တော်ရေထားတာက :X ကိုပြန်သွာခိုင်းလိုက် ပါတယ်။ဒါဆိုရင် ဒီပရိုဂရမ်လေးက notepad တွေချည်းဆက်တိုက်ဖွင့်နေပါလိမ့်မယ်။ မရပ်မချင်းပေါ့ဗျာ။ ခပ်ကြီးကြီးလေး extension ဆွဲကြည့်ရအောင်။ @echo off
:X
start notepad
start cmd
start www.example.blogspot.com
start www.facebook.com
start www.google.com
goto :X
ဒါဆိုရင်သင့်စက်အလုပ်ရှုပ်သွားပါလိမ့်မယ်။အရိုးရှင်းဆုံးက အကောင်းဆုံးပါပဲ။ မှတ်ချက် :X နေရာမှာသင့်စိတ်ကြိုက်ပေးနိုင်ပါတယ်။ဥပမာ :A
:Loop
:a
:f
ကြိုက်ရာပေးပါ။
(၃)Copy a file ဖိုင် တစ်ခုကိုတစ်ခြား name တစ်ခုနဲ့ လွယ်လင့်တစ်ကူ copy လုပ်ကြရအောင်။
code:cd ( path location) copy 1.bmp copied.bmp
ဒါလေးကိုရေးရင် file extension ကိုနားလည်ရမှာပါ။အဲဒီအကြောင်းကို ပို့တစ်ခုရေးပါဦးမယ်။ ကဲစလိုက်ရအောင်
@echo off
cd C:\
copy index.jpg copyed.jpg
ကဲရှင်းပြပါဦးမယ်။ @echo off ကတော့သိပြီးသာဖြစ်မှာပါ။ cd C:\ ဆိုတာpath location ဖြစ်ပါတယ်။ကိုယ်copy ကူးမယ့်ဖိုင်ရှိမယ့်နေရာဖြစ်ပါတယ်။:D\,:E\ စလို ဖြစ်နီုင်ပါတယ်။ copy ဆိုတဲ့ကုတ်ကတော့ ရှင်းပါတယ်။နောက်ကစာကြောင်းတွေကတော့ ဖိုင်နာမည်တွေဖြစ်ပါတယ်။ဒီနေရာမှာ ကိုယ်ပေးချင်သလို ပေးလို့မရပါဘူး။copy index.jpg copyto.jpg ဆိုတဲ့စာကြောင်းမှာ underline တား ထားတဲ့ key words တွေက ကိုယ် copy ကူးမယ့်ဖိုင် name ပါ။ သူ့နောက်က copyed.jpg ကတော့ result file name ပါ။သူကြတော့ ကြိုက်ရာအမည်ပေးလို့ရပါတယ်။အောက်မှာပုံနဲ့ပြထားပါတယ်။ဒါကိုသုံးရင် path location မှန်ရမယ်။ ကို်ယ်ကူးမယ့် ဖိုင်နာမည်မှန်ရမယ်။ဖိုင်ရ extension မှန်ရမယ်။
ဥပမာ .bat .bmp .exe .jpg .rar .zip အစရှိသလိုပေါ့။ ပုံမှာကြည့်ပါ။ ဒါက C: ထဲမှာရှိတဲ့ index ဆိုတဲ့ ဓါတ်ပုံဖိုင်လေးကို copied ဆိုတဲ့ ဖိုင်လေးအဖြစ်copy လုပ်လိုက်တာပါ။ ယနေ့တော့ဒီလောက်ပါပဲ။အမှားပါရင် ခွင့်လွတ်ပါ။