Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#1
با سلام، این تاپیک رو ایجاد کردم تا کاربران عزیز سایت آیریسک، اگر تا بحال برنامه نویسی نکرده اند و یا بلد نیستند شروع کنند، یا اگر به زبانی مثل c برنامه نویسی می کنند با کد نویسی فایل های دسته ای یا batch files آشنا شوند.
این آموزش ها رو همچنین می تونید توی وبلاگم ببینید و چون نوشتن آدرس در اینجا تبلیغات محسوب میشه از نوشتن اون خودداری می کنم.

این اولین سری از آموزش آشنایی با دستورات Disk Operating System هست، تاکید می کنم Batch زبان برنامه نویسی محسوب نمیشه اما چون برای خودش ساختاری داره و دستوراتی این طور می گیم که برنامه نویسی در Batch Files تا راحت تر باشیم!
اگر فکر می کنید که خب با وجود این همه زبان برنامه نویسی دیگه یادگیری این به چه دردی میخوره باید بگم که از دستورات این زبان می تونید توی زبان C++ و ... استفاده کنید، برای استفاده از این دستورات در ++C از دستور System استفاده می کنیم ساختار این دستور به شکل زیر است :
System("دستورات CMD");




خب اول می خوام به اونهایی که با زبان های برنامه نویسی دیگه آشنایی دارند بگم که منتظر معرفی تابع main() ! نباشند.
یا دنبال اینکه بگم مثلاً فلان نوع داده long int از 2147483647 تا 2147483648- است رو نداشته باشن! چون این زبان حتی توانایی انجام عملیات روی اعداد اعشاری یا حتی ذخیره اونها رو هم نداره " مگه با یکسری کلک ها "
خب حتماً میپرسین متغیر چی ، اونو داره ؟
دیگه خیلی این batch رو دسته کم گرفتید معلومه که داره الآن هم می خوام راجع به همین صحبت کنم:
batch files به زبان شیرین فارسی میشه فایل های دسته ای " که البته فایل هم فینگلیشه ! " این فایل های دسته ای دارای دو نوع متغیر هستند :
1 - String یا "رشته ای"
2 - Integer یا "صحیح"
یک نکته قبل از این که بخوام وارد بحث معرفی متغیر ها بشم رو اینجا میگم :
تا وقتی نخواهیم به یک متغیری مقدار بدیم نمی تونیم اونو معرفی کنیم یعنی باید جلوی همون جایی که متغیر رو معرفی می کنیم بهش مقدار هم بدیم و هر بار که بخواهیم به یک متغیری مقدار بدیم باید دوباره دستور معرفی متغیر رو تایپ کنیم.
پس در واقع دستوری برای معرفی متغیر وجود نداره بلکه دستوری وجود داره برای مقدار دهی به یک متغیر :
این دستور set هستش در پائین دو نوع متغیر معرفی شده اند ، رشته ای و صحیح :

set stringvar=Hello
set /a integervar=25
همین طور که می بینید برای مقدار دهی به متغیر رشته ای هیچ نیازی به استفاده از کوتیشن نیست ، حتماً می پرسید چرا؟ چون اسم متغیر ها بین دو تا % قرار می گیرند یعنی اگه من بخوام مثلاً متغیر a رو برابر با متغیر b قرار بدم از کد زیر استفاده میکنم :
set a=%b%
به عبارت دیگه برای فراخوانی متغیر ها باید اسم اونها رو بین دو تا علامت درصد "%" قرار بدیم.
* اگه دقت کرده باشید فهمیدید که برای معرفی متغیر های صحیح از یک a/ بعد از دستور set استفاده میشه
* علامت مساوی همیشه باید به اسم متغیر چسبیده باشه و نباید فاصله ی اضافه بین اونها باشه
++ فرض کنید متغیر c رشته hossein و متغیر b رشته yousefi رو در خودشون نگه داری می کنند اگه بخواهیم که متغیری باشه به نام a که در اون رشته hossein yousefi 77 قرار بگیره از دستور زیر استفاده می کنیم.
set a=%c% %b% 77
همون طور که می بینید خیلی ساده است هیچ علامتی چیزی هم بین رشته ها و متغیر ها برای وصل کردن اونها به هم وجود نداره !
خب فکر کنم برای این پست کافی باشه ، بقیه آموزش در قسمت بعد ...





 
آخرین ویرایش توسط مدیر

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#2
پاسخ : آموزش گام به گام کد نویسی Batch Files

سلام،

قسمت دوم آموزش رو شروع می کنم، ببخشید یه چند وقتی نبودم البته زیاد هم از این تاپیک استقبال نشده ولی در هر حال شاید بدرد کاربران بعدی بخوره.
در ابتدا باید بگم که برای اجرا دستورات این برنامه نویسی نیاز به هیچ کامپایلری ندارید. تنها باید ساده ترین ویرایشگر متن ویندوز یعنی Notepad را باز کنید و کد های خود را درون آن وارد کنید و حتما در ابتدا عبارت echo off@ را وارد کنید و در خط های بعدی دستورات را بنویسید. دستور echo off@ باعث میشود که کاربر نتواند دستورات شما را حین اجرای برنامه ببیند، پس از نوشتن بقیه کد ها ، برای اجرای برنامه باید متن خود را با پسوند bat. ذخیره کنید.
در پست قبل با دستور set و کاربرد های آن آشنا شدید، حال می خواهم چگونگی ارتباط با کاربر از طریق خروجی و ورودی را به شما آموزش دهم. برای نوشتن چیزی در ورودی باید از دستور Echo استفاده کنیم. مثلا اگر بخواهیم در ابتدای برنامه خوش آمد گویی کنیم به این شکل می نویسیم :

Echo Welcome to this program

توجه داشته باشید که پس از نوشتن متن به خط بعدی میروید.
همچنین با دستور echo می توان مقداری که در یک متغیر جاسازی شده را نیز در خروجی چاپ کنید. مثلا %echo %variable (از آموزش های قبلی می دانیم که اسم متغیر باید بین 2 عدد % قرار بگیرد)
دستور .echo نیز یک خط به بعد می رود.

برای ورودی گرفتن نیز از دستور set استفاده می کنیم، به این صورت که بعد از آن یک p/ میگذاریم و سپس اسم متغیری که می خواهیم ورودی کاربر در آن ذخیره شود و سپس علامت مساوی

=set /p variable

اگر بخواهیم قبل از گرفتن ورودی از کاربر چیزی تقاضا شود ، مثلا درخواست نام کاربر به این صورت عمل می کنیم :

set /p name=Please Enter Your name

و توجه داشته باشید که عبارتی که جلوی علامت مساوی می نویسید در متغیر ذخیره نمی شوند.

تا قسمت های بعدی بدرود ...
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#3
پاسخ : آموزش گام به گام کد نویسی Batch Files

سلام، توی این پست می خوام قسمت سوم آموزش ها رو شروع کنم، ابتدا می خوام با دستور pause آشناتون کنم، اگه یه برنامه بنویسید و اجراش کنید ممکنه عملیات انجام بشه و شما فقط ببینی به لحظه صفحه سیاه شد و همین. برای اینکه ببینی در آخر برنامه چه کار کرده از دستور pause استفاده می کنیم. فقطی توی یک خط تایپ می کنیم pause در حین اجرای برنامه براتون یک پیغام میاد که ... Press any key to continue .
دومین دستور جدیدی که میخوام بهتون یاد بدم دستور color هست، شما با این دستور میتونید رنگ پس زمینه و نوشته هاتون رو عوض کنید. ما توی داس 16 تا رنگ داریم که هر یک با یک عدد هگزادسیمال (بر مبنای 16) نشون داده میشن از 0 تا F. خوب اینجا لیست رنگ هاست که براتون نوشتم :

0 - مشکی

1 - آبی تیره

2 - سبز تیره

3 - سبزآبی تیره

4 - قرمز تیره

5 - بنفش

6 - زرد تیره

7 - خاکستری روشن
8 - خاکستری
9 - آبی

A - سبز

B - سبزآبی

C - قرمز

D - بنفش روشن

E - زرد

F - سفید


پارامتر اول رنگ پس زمینه است و پارامتر بعدی رنگ نوشته مثلا اگه بخواهیم رنگ صفحه آبی و رنگ نوشته ها قرمز بشه از دستور color 9c استفاده می کنیم.


تا قسمت های بعدی بدرود ...
 

moham_mad

New Member
ارسال ها
27
لایک ها
33
امتیاز
0
#4
پاسخ : آموزش گام به گام کد نویسی Batch Files


برای استفاده از این دستورات در ++C از دستور System استفاده می کنیم ساختار این دستور به شکل زیر است :
System("دستورات CMD");
ببخشید یه سوال داشتم
من دستور system تو سی پلاس پلاس میزنم ارور میده دستور سیستم توی چه فایلی قرار داره ؟ منظورم#include <..>



 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#5
پاسخ : آموزش گام به گام کد نویسی Batch Files


ببخشید یه سوال داشتم
من دستور system تو سی پلاس پلاس میزنم ارور میده دستور سیستم توی چه فایلی قرار داره ؟ منظورم#include <..>





توی iostream هست.
ویرایش : " توی بعضی از کامپایلر ها باید stdlib.h هم include کرد. "
 
آخرین ویرایش توسط مدیر

hoco.hc

New Member
ارسال ها
388
لایک ها
267
امتیاز
0
#6
پاسخ : آموزش گام به گام کد نویسی Batch Files

این ها فقط توی ویندوز کار می کنند؟
 

moham_mad

New Member
ارسال ها
27
لایک ها
33
امتیاز
0
#7

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#8
پاسخ : آموزش گام به گام کد نویسی Batch Files

سلام، بله فقط در ویندوز هست، توی ویندوز اسمش batch هست و توی CMD می نویسیم، درunix هم یه چیزی داریم شبیه به همین که اسمش shell script هست و تو Terminal می نویسیمش، حسنش اینه که خیلی کارایی که نمیشه توی محیط بسته ویندوز کرد رو انجام بدیم! البته در آخر آموزش ها به جایی می رسیم که بتونید خیلی تغییرات ایجاد کنید و می خوام یه پروژه هم بدم :

پروژه شماره 1 : در ابتدا باید گفت که یکسری پیشنیاز آموزشی داره پس میگم اگه بخواهیم مثلا یه عدد رو با یه عدد دیگه جمع کنیم مثل روبرو عمل می کنیم : %set /a c=%a%+%b و در آخر این دستور جمع دو متغیر a و b را در c ذخیره می کنم.

و همچنین عملیات های دیگه مثلا ضرب با * ، تقسیم با / باقی مانده تقسیم رو با % و دستورات =+ و =- و =/ و =% و =* و ... رو هم داریم و همچنین -- و ++ رو هم داریم.

پروژه اینه : در ابتدا رنگ صفحه آبی شه و رنگ نوشته هم سفید. بعد دو تا عدد بگیره و باقی مانده تقسیم اول بر دومی رو بگیره و بعد بهش یکی اضافه کنه و بعد کلش رو به توان 2 برسونه و سپس عدد حاصل رو در خروجی چاپ کنه. می خوام اشکالاتتون رو برطرف کنم پس اگه خوب بلد نبودید بنویسید تا اشکالات رو بگم.

نکته » کدتون رو توی ubuntu pastebin بنویسید و syntax رو batch files انتخاب کنید.
 
آخرین ویرایش توسط مدیر

moham_mad

New Member
ارسال ها
27
لایک ها
33
امتیاز
0
#9
پاسخ : آموزش گام به گام کد نویسی Batch Files

پروژه اینه : در ابتدا رنگ صفحه آبی شه و رنگ نوشته هم سفید. بعد دو تا عدد بگیره و باقی مانده تقسیم اول بر دومی رو بگیره و بعد بهش یکی اضافه کنه و بعد کلش رو به توان 2 برسونه و سپس عدد حاصل رو در خروجی چاپ کنه. می خوام اشکالاتتون رو برطرف کنم پس اگه خوب بلد نبودید بنویسید تا اشکالات رو بگم.

نکته » کدتون رو توی ubuntu pastebin بنویسید و syntax رو batch files انتخاب کنید.
Ubuntu Pastebin
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#10
پاسخ : آموزش گام به گام کد نویسی Batch Files

آفرین کاملا درسته ولی دستور باقی مانده تقسیم فقط یه دونه درصد داره یعنی % نه %% !
Ubuntu Pastebin اینم کد درست.

یه پروژه دیگه میخوام بدم ولی قبل از اون میخوام پیشنیاز هاشو بگم.
1 - یکسری متغیر از پیش تعریف شده توی این برنامه نویسی داریم که به شرح زیر هستند:
[TABLE="width: 500"]
[TR]
[TD]اسم متغیر[/TD]
[TD]کارایی[/TD]
[TD]مثال برای خروجی[/TD]
[/TR]
[TR]
[TD]allusersprofile یا programdata[/TD]
[TD]نشانی programdata[/TD]
[TD]C:\Program Data[/TD]
[/TR]
[TR]
[TD]appdata[/TD]
[TD]نشانی appdata[/TD]
[TD]C:\Users\Admin\AppData\Roaming[/TD]
[/TR]
[TR]
[TD]computername یا userdomain[/TD]
[TD]اسم کامپیوتر[/TD]
[TD]SONY-PC[/TD]
[/TR]
[TR]
[TD]comspec[/TD]
[TD]نشانی cmd[/TD]
[TD]C:\Windows\System32\cmd.exe[/TD]
[/TR]
[TR]
[TD]homedrive یا systemdrive[/TD]
[TD]نشانی درایوی که سیستم عامل روی آن نصب است.[/TD]
[TD]C:[/TD]
[/TR]
[TR]
[TD]homepath[/TD]
[TD]نشانی محل یوزر [/TD]
[TD]\Users\Admin[/TD]
[/TR]
[TR]
[TD]localappdata[/TD]
[TD]نشانی فولدر local در appdata[/TD]
[TD]C:\Users\Admin\AppData\Local[/TD]
[/TR]
[TR]
[TD]logonserver[/TD]
[TD]نشانی logonserver[/TD]
[TD]\\SONY-PC[/TD]
[/TR]
[TR]
[TD]number_of_processors[/TD]
[TD]تعداد هسته های CPU[/TD]
[TD]4[/TD]
[/TR]
[TR]
[TD]OS[/TD]
[TD]نمایش نوع سیستم عامل[/TD]
[TD]Windows_NT[/TD]
[/TR]
[TR]
[TD]pathext[/TD]
[TD]نمایش پسوند های اجرایی[/TD]
[TD].COM;.EXE;.BAT;.CMD
;.VBS;.VBE;.JS;.JSE
;.WSF;.WSH;.MSC[/TD]
[/TR]
[TR]
[TD]pc_brand[/TD]
[TD]برند کامپیوتر[/TD]
[TD]Pavilion[/TD]
[/TR]
[TR]
[TD]platform[/TD]
[TD]پلتفورم[/TD]
[TD]MCD[/TD]
[/TR]
[TR]
[TD]PROCESSOR_ARCHITECTURE[/TD]
[TD]معماری CPU[/TD]
[TD]AMD64[/TD]
[/TR]
[TR]
[TD]PROCESSOR_IDENTIFIER[/TD]
[TD]شناسه CPU[/TD]
[TD]Intel64 Family 6 Model 37 Stepping 5, GenuineIntel[/TD]
[/TR]
[TR]
[TD]PROCESSOR_LEVEL[/TD]
[TD]درجه CPU[/TD]
[TD]6[/TD]
[/TR]
[TR]
[TD]PROCESSOR_REVISION[/TD]
[TD]بازدید CPU[/TD]
[TD]2505[/TD]
[/TR]
[TR]
[TD]programfiles[/TD]
[TD]آدرس programfilesبرنامه های 64 بیتی[/TD]
[TD]C:\Program Files[/TD]
[/TR]
[TR]
[TD](programfiles(x86[/TD]
[TD]آدرس programfilesبرنامه های 32 بیتی[/TD]
[TD](C:\Program Files (x86[/TD]
[/TR]
[TR]
[TD]ProgramW6432[/TD]
[TD]آدرس programfiles اصلی[/TD]
[TD]C:\Program Files[/TD]
[/TR]
[TR]
[TD]temp یا tmp[/TD]
[TD]آدرس temp[/TD]
[TD]C:\Users\Pavilion\AppData\Local\Temp[/TD]
[/TR]
[TR]
[TD]systemroot یا windir[/TD]
[TD]آدرس windows[/TD]
[TD]C:\Windows[/TD]
[/TR]
[TR]
[TD]public[/TD]
[TD]آدرس public users[/TD]
[TD]C:\Users\Public[/TD]
[/TR]
[TR]
[TD]username[/TD]
[TD]اسم یوزرنیم اکانت فعلی[/TD]
[TD]Admin[/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[/TABLE]
و ... که دیگه کاربرد ندارن

دستور date تاریخ رو نشون میده و همزمان میتونید تعویض هم بکنید برای نمایش تاریخ میتونید از دستور date /t استفاده کنید.دستور time هم برای نمایش زمان به کار میره و میتونید زمان رو عوض هم بکنید برای اینکه زمان فقط نمایش داده بشه از دستور time /t استفاده می کنیم.


حالا پروژه اینه :
ابتدا تاریخ و زمان رو به کاربر نشون بدید، بعد از کاربر اسمش رو بپرسید و بعد از فهمیدن اسم بهش با همون اسم خوش آمد بگید. بعد یوزر نیم کاربر رو روی صفحه چاپ کنید و در آخر با کاربر با اسم خودش خدا حافظی کنید.


امیدوارم آموزش ها تا به اینجا براتون مفید بوده باشه، هر چونه سوالی دارید بیان کنید.
 

moham_mad

New Member
ارسال ها
27
لایک ها
33
امتیاز
0
#11
پاسخ : آموزش گام به گام کد نویسی Batch Files

آفرین کاملا درسته ولی دستور باقی مانده تقسیم فقط یه دونه درصد داره یعنی % نه %%
حالا پروژه اینه :
ابتدا تاریخ و زمان رو به کاربر نشون بدید، بعد از کاربر اسمش رو بپرسید و بعد از فهمیدن اسم بهش با همون اسم خوش آمد بگید. بعد یوزر نیم کاربر رو روی صفحه چاپ کنید و در آخر با کاربر با اسم خودش خدا حافظی کنید.


امیدوارم آموزش ها تا به اینجا براتون مفید بوده باشه، هر چونه سوالی دارید بیان کنید.
دستور باقیمانده یه درصد داره ولی وقتی اجراش میکنیم :کد

کد
set /a c=(%a% % %b%+1)*(%a% % %b%+1)
خروجی برای 7 و 6 :

کد
C:\>set /a c=(7 ba 6+1)
Unbalanced parenthesis.
اما برای %% جواب میده
البته این برای بچ فایل ها هست و در محیط سی ام دی دستور اول جواب داد
پروژه دوم : Ubuntu Pastebin
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#12
پاسخ : آموزش گام به گام کد نویسی Batch Files

دستور باقیمانده یه درصد داره ولی وقتی اجراش میکنیم :کد

کد
set /a c=(%a% % %b%+1)*(%a% % %b%+1)
خروجی برای 7 و 6 :

کد
C:\>set /a c=(7 ba 6+1)
Unbalanced parenthesis.
اما برای %% جواب میده
البته این برای بچ فایل ها هست و در محیط سی ام دی دستور اول جواب داد
پروژه دوم : Ubuntu Pastebin
آفرین ولی welcome یه دونه l داره !
 

Davoody12

New Member
ارسال ها
1
لایک ها
0
امتیاز
0
#13
پاسخ : آموزش گام به گام کد نویسی Batch Files

سلام

ببخشید مزام بحثتون شدم
می خواستم به زبان بت یه دسوری بنویسم:





می خواستم دستوریبنویسمکه اول چک کنه که برنامه ای هست که نات رسپوندینگ باشه یانه؟
اگ هست دستور بالا رو اجرا کنه
اگر نیست فایلی به نام مثلا 1.bat رو که در دسکتاپه اجرا کنه
اگه می شه لطف کنین اون دستور برسی کننده رو با ایف و السش بنویسید
ممنون
 
ارسال ها
46
لایک ها
1
امتیاز
8
#14
پاسخ : آموزش گام به گام کد نویسی Batch Files

من میخام کتاب بخرم کدوم کتابو برا مرحله 3 بخرم؟
 

sa1378

New Member
ارسال ها
1,403
لایک ها
1,077
امتیاز
0
#15
پاسخ : آموزش گام به گام کد نویسی Batch Files

من میخام کتاب بخرم کدوم کتابو برا مرحله 3 بخرم؟
کتاب تفکر برنامه نویسی و الگوریتم انتشارات خوشخوان خیلی ابتدایی هست
برای الگوریتم CLRS و طراحی الگوریتم با رویکردی خلاقانه(Creative) هم برای الگوریتمن
بقیش تمرینه
 

sahar-sh

New Member
ارسال ها
11
لایک ها
2
امتیاز
0
#16
پاسخ : آموزش گام به گام کد نویسی Batch Files

اگه بخوایم.برنامه نویسی را به طور کامل یاد بگیریم.چه کتابی پیشنهاد میشه؟
 
بالا