آموزش اسکریپت نویسی | آموزش نوشتن BATCH File | آموزش نوشتن بچ فایل | آموزش اسکریپت نویسی در ویندوز | آموزش BATCH Scripting و ... کلیدواژه هایی برای یادگیری بهتر این مقاله است ، اما اگر قصد دارید بصورت فوق حرفه ای به اسکریپت نویسی ویندوز با محیط CMD بپردازید ، پیشنهاد می کنیم که حتما دوره آموزشی تخصصی اسکریپت نویسی با Batch File های مهندس احمدی را از طریق لینک زیر دنبال کنید :
درس اول (مقدمات اولیه) : فایل های اجرایی BAT کاربرد فراوانی برای متخصصان بالاخص بدافزار نویسان دارد .این فایل ها در هر محیطی قابل اجرا هستند و از دیگر ویژگی های آنها می توان به مفسری بودنشان اشاره کرد (خط به خط اجرا می شوند) ، به همین جهت هر خط برای خود می تواند یک دستور مجزا باشد.هر فایل BAT می تواند چندین برنامه اجرایی را اجرا و خروجی آنها را درون فایلی ذخیره کند و یا اینکه بر روی مانیتور یا چاپگر ارسال کند. از کاربردهای دیگر این نوع فایل ها می توان به اجرای کارهای دسته ای و تکراری اشاره کرد که در هر ویرایشگری قابل ویرایش هستند.در این بخش به تعدادی از این دستورات اشاره می کنیم
مثال : وارد محیط notepad شده و دستورات زیر را وارد کنید و سپس فایل را با نام test.bat در درایو c ذخیره کنید و برای اجرا وارد محیط dos و سپس وارد درایو c شده و روبروی علامت < عبارت test را وارد و اینتر نمایید.
@ECHO O FF
DIR/W > A.TXT
START NOTEPAD A.TXT
نتیجه : لیست فایلهای پوشه مربوطه ای که این فایل دسته ای در اون اجرا شدرو در فایلی به نام A.TXT ذخیره و با NOTEPAD نمایش داده.
درس دوم : متغیرهای محیطی و دستور SET
این متغیرها از نوع رشته ای هستند و از این متغیرها می توان برای ذخیره سازی و بازخوانی آن ها استفاده کرد.
SET VAR=[STRING] ECHO %VAR%
بطور مثال:
@ECHO OFF SET SCORE=10 ECHO %SCORE% OUTPUT : 10
متغیرها محیطی عمومی
با استفاده از این دستور می توان عملیات ریاضی انجام داد
بطورمثال:
@ECHO OFF SET SCORE=30 SET /A SCORE=%SCORE%+1 ECHO %SCORE% OUTPUT : 31
از دیگر عملگرها می توان به موراد زیر اشاره کرد
بطور مثال:
@ECHO OFF SET STR=ALIREZA %STR:1,3% OUTPUT : LIR
متغیر errorlevel : این متغیر از نوع اعداد طبیعی است و بعد از اتمام هر برنامه اجرای این متغیر مقدار دهی می شود. در واقع این متغیر برای آنست که بدانیم علت خطا چیست. بطور مثال در دستور زیر:
Dir *.docx>c:\test\a.txt
اگر عملیات موفقیت آمیز و بدون اشتباه باشد این متغیر عدد 0 در آن قرار می گیرد. اگر عملیات با اشتباه و خطا مواجه شود این متغیر با یک مقدار دهی می شود.
برچسب ها با عملگر : نشان داده می شوند طول آنها حداکثر 127 کاراکتر بوده و از حروف و عدد تشکیل شده اند و برای پرش به یک دستور از فرمان goto استفاده می گردد.
مثال:
:labe1 Dir c:\*.* > c:\a.txt Del c:\test\*.docx If …… goto end Goto lab1 :end
نکته قابل توجه ، می توان خروجی یا حتی ورودی هر دستوری را علاوه بر فایل به موارد زیر نیز ارسال کرد.
Nul : در صورتی که نخواهیم هیچ عملی انجام شود از این عبارت استفاده می کنیم.
Del *.txt > nul
Con : این عبارت در صورت ورودی بودن صفحه کلید و در صورت خروجی نمایشگر است.
copy con a.txt
prn : نتیجه برای خروجی ارسال شده.
Dir *.* > prn
این دستورات شامل echo-start-if-for-call-rem-pause که به تشریح هر یک پرداخته
Echo "welcome"
Echo
@echo on or off
2.start
اجرای یک برنامه بطور مستقل و همزمان
Start paint.exe Start calc.exe
بدون start دستورات فوق به این صورت عمل کرده که ابتدا برنامه اول اجرا شده بعد برنامه دوم.
دستور شرط به این صورت که اگر شرطی برقرار بود دستوری اجرا شود و در غیر این صورت دستور دیگری اجرا گردد بطور مثال :
If exist c:\a.txt Del c:\a.txt Else Echo "no file"
اگر فایل a.txt در درایو c وجود داشت آن را پاک می کند در غیر این صورت پیغام عدم وجود فایل داده
مثال دوم
@echo off Dir %1;\>nul If errorlevel 1 Echo "path in valid" Else Echo path is valid
از ورودی نام یک درایو را گرفته و موجود بودن آن بررسی می کند.
مثال 3 :
@echo off If "%1"=="" goto end If "%2"=="" goto end If "%1" equ or lss or gtr "%2" echo ""
دو رشته از کاربر گرفته و آنها را با هم مقایسه می کند (equ یعنی برابر- lss کوچکتر و gtr یعنی بزرگتر)
با این دستور می توان کارهای زیر را انجام داد:
مثال هایی از دستور FOR
مثال 1:
FOR /L %I IN(4,1,9) DO ECHO %I
این دستور از عدد 4 شروع کرده و یکی یکی تا عدد 9 پیش رفته و آنها را نمایش می دهد. به عبارتی خروجی دستور زیر عبارتست از
4,5,6,7,8,9
مثال 2:
FOR /L %I IN(6,3,20) DO ECHO %I
این دستور از عدد 6 به تعداد سه تا سه پیش رفته تا به 20 . به عبارتی خروجی دستور فوق عبارتست از 6,9,12,15,18
مثال 3:
For %i in (a*b.txt) do echo %i
این دستور تمامی فایلهایی که با حرف a شروع می شوند و با حرف b ختم می شوند را از درایو c در لیستی نمایش می هد.(اگر از درایو c اجرا شده باشد)
مثال 4:
For %i in (b??h*.jpg) do echo %i
این دستور با این فورمت تمام فایهایی که حرف اول آنها با b و حرف چهارم آنها با h شروع و پسوند آنها jpg است(عکس) را نمایش داده (از درایو و مسیری که در حال اجرا است)
مثال 5:
For %i in (ali reza hasan) do echo %i
این دستور اسامی داخل پرانتز را به ترتیب نمایش داده
For %i in (dir date time) do %i
این دستور فرمان های dir و date و time را به ترتیب اجرا کرده.
جهت ارائه توضیحات در ارتباط با دستورات و عدم اجرای یک خط دستور
مثال:
Rem monitor list file
Dir
توضیخ در مورد دستور dir (نمایش لیست فایلهای درایو مربوطه)
Rem dir
عدم اجرای دستور dir
مثال:
Attrib +h + r a*.txt
مخفی و فقط خواندنی کردن کلیه فایلهایی از درایو مربوطه که با a شروع می شوند و پسوند txt دارند و برای غیر فعال کردن دستور از – بجای + استفاده کرده.
Copy *.jpg d:\*.jpg
کلیه فایلهای تصویری درایو جاری را به درایو d کپی کرده
Ren a.txt b.txt
تغییرنام فایل از a.txt به b.txt
مثال:
Findstr ali c:\a.txt
جستجوی کلمه ali در فایل a.txt و نمایش کلیه خط هایی که کلمه ali در آن وجود دارد.
مثال:
Findstr /s hi c:\*.txt
جستجوی کلیه فالهای متنی داخل درایو c و پوشه های آن که دارای کلمه hi است.
مرتب سازی محتویات فایل
مثال:
Sort a.txt
مقایسه دو فایل با یکدیگر از نظر اندازه
Comp c:\a.txt d:\b.txt
دستور fc مقایسه دو فایل با یکدیگر از نظر محتوا
از فایلهای دسته ای می توان جهت اجرای خودکار یکسری از دستورات استفاده کرد ، پسوند این فایلها از نوع bat بوده که با استفاده از نرم افزار notepad قابل ویرایش هستند.دستورات فایل های دسته ای حساس به بزرگی و کوچکی حروف (Case Sensitive) نیستند.
مرور کلی بر دستورات فایلهای دسته ای (batch files) بهمراه مثال
نحوه استفاده از این دستور به شرح ذیل است:
[/C[:]choices] [/N] [/S] [/T[:]c,nn] [text] choice
مثال
مثال 1: جستجوی عبارت cmd در فایل Help.txt موجود در درایو c
Findstr ali c:\a.txt
مثال 2: جستجوی کلیه فایلهای متنی داخل درایو c و پوشه های آن که دارای کلمه win است.
Findstr /s win c:\*.txt
مثال3:
@ECHO OFF SET SCORE=10 ECHO %SCORE% OUTPUT : 10
مثال4 : لیست فایلهای پوشه مربوطه ای که این فایل دسته ای در اون اجرا شدرو در فایلی به نام A.TXT ذخیره و با NOTEPAD نمایش داده.
@ECHO O FF DIR/W > A.TXT START NOTEPAD A.TXT< DIR/W
مثال5 : محاسبه میانگین دو عدد
@ECHO OFF SET score1=10 set score2=15 SET /A SCORE=%SCORE1%+%SCORE2% SET /A SCORE=(%SCORE1%+%SCORE2%)/2 ECHO %SCORE%
مثال 6: نمایش حروف بعد از کاراکتر چهارم به تعداد 1
@ECHO OFF SET STR=ALIREZA %STR:4,1% OUTPUT : LIR
مثال7 : در صورت وجود فایل a.txt در درایو c آن را به b.txt تغییر نام داده
If exist c:\a.txt Ren c:\a.txt c:\b.txt Else Echo "no file"
مثال 8:ساخت درایو مجازی y که به پوشه backup متصل باشد
subst y: c:\backup
مثال 9: در صورت وجور فایلی به نام 1.txt در درایو c: سیستم بصورت خودکار بعد از 50 reset شده
If exist c:\1.txt shutdown.exe -r -f -t 00 -c "Windows will now restart..." If exist c:\a.txt Else Echo "no file"
نکته : جهت قطع عملیا ت shutdown دستور زیر را وارد نمائید
Shutdown -a
مثال 10: تایپ اعداد از 4 تا 9
@echo off FOR /L %I IN (4,1,9) DO ECHO %I
مثال 11: تایپ اعداد از 20 تا 6 بصورت معکوس 3 تا سه تا
FOR /L %I IN (20,-3,6) DO ECHO %I
مثال 12: نمایش تمام فایلهایی که با حرف a شروع می شوند و با حرف b ختم می شوند را از درایو c در لیستی نمایش می هد.(اگر از درایو c اجرا شده باشد)
For %i in (a*b.txt) do echo %i
مثال 13: نمایش تمام فایهای تصویری که حرف اول آنها با b و حرف چهارم آنها h نمایش داده (از درایو و مسیری که در حال اجرا است)
For %i in (b??h*.jpg) do echo %i
مثال 14: نمایش تاریخ، ساعت به ترتیب با استفاده از دستور for
For %i in (date time) do %i
مثال15: فعال شدن منو و امکان انتخاب یک عدد 1 یا 2 و یا3 .در صورت انتخاب 2 ، سیستم reset شود و در صورت انتخاب 3 ، سیستم خاموش شود و در صورت انتخاب 1 عمل خاموش شدن و یا راه اندازی متوقف گردد.
@echo off rem "1:abort - 2:shutdown - 3:reset" CHOICE /C:123 %1 IF ERRORLEVEL ==3 GOTO THREE IF ERRORLEVEL ==2 GOTO TWO IF ERRORLEVEL ==1 GOTO ONE GOTO end :THREE shutdown.exe -r -f -t 50 -c "Windows will now restart..." GOTO end :TWO shutdown.exe -s -f -t 40 -c "Windows will now shutdown.... " GOTO end :ONE shutdown -a :end
مثال16: بازشدن پنجره notepad در حالت ماکزیمم
start /MAX notepad myfile.txt
مثال17: اجرای یک موسیقی
start c:\music\"my song.mp3"
فایل های اجرایی BAT کاربرد فراوانی برای متخصصان بالاخص بدافزار نویسان دارد .این فایل ها در هر محیطی قابل اجرا هستند و از دیگر ویژگی های آنها می توان به مفسری بودنشان اشاره کرد (خط به خط اجرا می شوند) ، به همین جهت هر خط برای خود می تواند یک دستور مجزا باشد.هر فایل BAT می تواند چندین برنامه اجرایی را اجرا و خروجی آنها را درون فایلی ذخیره کند و یا اینکه بر روی مانیتور یا چاپگر ارسال کند. از کاربردهای دیگر این نوع فایل ها می توان به اجرای کارهای دسته ای و تکراری اشاره کرد که در هر ویرایشگری قابل ویرایش هستند. در همین سایت مقالات متعددی در ارتباط با نحوه ایجاد فایل های دسته ای آموزش داده شده است.در ادامه تصمیم داریم با استفاده از کد دستور تعدادی اعداد تصادفی 4 یا 5 رقمی ایجاد کنیم.
@echo off :Start2 cls goto Start :Start title CREAT Password echo —————————————-¬———————– MAKE PASSWORD 3 OR 8 DIGITS echo —————————————-¬———————– echo 1) 3 Random Password echo 2) 8 Random Passwords echo Input your choice set input= set /p input= Choice: if %input%==1 goto A if NOT goto Start2 if %input%==2 goto B if NOT goto Start2 :A cls echo —————————————-¬———————– echo password CREATE is %random%, %random%, %random%. echo AGAIN. echo —————————————-¬———————– echo 1) Go back to the beginning echo 2) Exit set input= set /p input= Choice: if %input%==1 goto Start2 if NOT goto Start 2 if %input%==2 goto Exit if NOT goto Start 2 :Exit exit :B cls echo —————————————-¬———————– echo passwords are: %random%, %random%, %random%, %random%, %random%, %random%, %random%, %random% . ECHO AGAIN. echo —————————————-¬———————– echo 1) Go back to the beginning echo 2) Exit set input= set /p input= Choice: if %input%==1 goto Start2 if NOT goto Start 2 if %input%==2 goto Exit if NOT goto Start 2 :C
کارشناس ارشد فناوری اطلاعات و مدرس کامپیوتر
کارشناس ارشد فناوری اطلاعات هستم ، مدرس دوره های کامپیوتر ، مدیر فناوری اطلاعات و دارای گواهینامه های MCSA ، CCNA ، CEH و Network Plus و خوشحالم از اینکه می تونم دانشم رو در توسینسو به اشتراک بگذارم
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود