رفتن به مطلب

آموزش Batch Programing


ارسال های توصیه شده

آموزش Batch Programing

 

 

فصل اول مبانی پایه در Batch Programing

تا به حال به این فکر افتاده اید که چگونه میتوان کارهای کامپیوتری را به صورت یکجا و خودکار انجام داد؟ یا اینکه زمان انجام یک کار رو به صورت دستی مشخص کرد؟ مثلا در تاریخ مشخص کلیه عکسهای شما حذف شود. یا همیشه در پایان روز هارد دیسک به صورت خود کار Defrag شود. و یا با دوبار کلیک کردن روی یک فایل چند کار مثل فرمت کردن درایوها، ساخت و حذف پوشه ها، ایجاد فایلهای متنی به همراه متن خاص و … انجام شود؟ اگر شما هم علاقه به Automation نمودن کارها دارید باید بدانید آموزش Batch Programing مخصوص شما میباشد.

 

ساخت فایلهای Batch به شما اجازه میدهد کارهای خود را به صورت یکجا در یک فایل متنی مشخص کنید. تا در زمان انجام کارهای روزانه صرفه جویی کنید. یعنی ساخت برنامه ای که کارهای شما را به صورت خودکار انجام دهد.

 

نکته: برای ساخت حرفه ای تر فایلهای Batch نیاز به یاد گرفتن دستورات CMD دارید. یعنی هر چه بیشتر از دستورات CMD بدانید فایل Batch حرفه ای تر میتوانید بسازید

 

 

 

فایل Batch چیست؟

فایلهای Batch در واقع دارای فهرستی از دستورات CMD در ویندوز میباشند که به صورت غیر تعاملی اجرا میشوند. یعنی یک سری دستور که با قواعد Batch Programing نوشته شده اند و به صورت خودکار و بدون نیاز به دخالت افراد اجرا میشوند. برای مثال زمانی که میخواهید چند کار را پشت سر هم انجام دهید نیاز دارید تا ابتدا به کار اول رسیدگی کنید سپس به کار دوم و سوم و … اما اگر یک فایل Batch بسازید همه کارهای خود را میتوانید در یک حرکت انجام دهید.

 

 

چگونه یک فایل Batch بسازیم؟

برای ساخت فایل Batch ابتدا در مکان مورد نظر خود همانند Desktop کلیک راست کرده سپس از گزینه New روی Text Documents کلیک کنید. تا یک فایل متنی ایجاد شود. حال پسوند فایل متنی که txt. میباشد را به Bat. یا cmd. تغییر دهید. معمولا پس از تغییر هشداری مبنی بر:

(در صورت تغییر پسوند ممکن است فایل شما غیر قابل استفاده شود)

را مشاهده می کنید که باید روی گزینه Yes کلیک کنید. پس از تغییر پسوند آیکون فایل متنی به چرخ دنده تغییر خواهد نمود:

 

2p6dx4er5j1posey24tb.jpg

 

 

نکته: در صورت مشاهده نکردن پسوند فایلها ابتدا باید از تب View در Folder Option تیک گزینه Hide Extension for known File Types را بردارید. تا کلیه پسوندها نمایش داده شود.

 

 

پس از تغییر نام فایل روی آن کلیک راست نموده سپس روی گزینه Edit کلیک کنید تا ویرایشگر Notepad باز شود. اولین دستور برای ساخت فایل Batch دستور Echo off@ میباشد. که مشخص میکند این یک فایل غیر تعاملی یا Non-Interactive است. پس در اولین سطر Echo off@ را تایپ کنید.

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

حال برای نمایش یک متن خاص باید از دستور Echo به همراه متن مورد نظر استفاده کنید. اما در سطر دوم یا سطر سوم که خالی باشد:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

برای نمایش یک سطر خالی در نتایج فایل Batch دستور Echo را به همراه یک نقطه تایپ کنید. برای مثال:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

نکته: بهتر است بعد از ایجاد هر تغییر فایل Batch را Save کرده و حاصل آن را با دو بار کلیک رو فایل مشاهده کنید. اگر فقط از دستور Echo استفاده کرده باشید فایل به سرعت نمایش داده شده و بسته میشود. برای ایجاد توقف باید از دستور Pause در آخر متن استفاده کنید برای مثال:

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

 

fx1qyb0w3yb7hgbinwq.jpg

 

 

پس دستور Echo off@ برای مشخص نمودن Non-Interactive بودن فایل بود. دستور .Echo هم برای نمایش سطر خالی استفاده میشود. و دستور Echo به همراه پیام مورد نظر برای نمایش پیام مورد نظر شما است. دستور Pause هم برای توقف استفاده میشود.

 

مشخص نمودن عنوان در Batch File

برای مشخص کردن یک عنوان باید از دستور Title در فایل Batch استفاده کنید. کافیست تا دستور Title را به همراه عنوان مورد نظر خود بعد از دستور Echo off@ تایپ کنید:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

مشخص نمودن رنگ در Batch File

 

برای مشخص نمودن رنگ متن و رنگ صفحه باید از دستور Color استفاده کنید. مثلا برای داشتن متن سبز در صفحه مشکی:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

در دستور بالا ابتدا عدد 0 رنگ صفحه را مشخص میکند و حرف a رنگ متن را، برای دیدن فهرست رنگها کافیست از دستور ?/ Color در محیط CMD استفاده کنید.مشخص نمودن ابعاد صفحه در Batch File

 

برای مشخص نمودن تعداد لاین ها و حرف ها در ابعاد صفحه اجرایی فایل Batch باید از دستور Mode به همراه پارامتر Con و پارامتر Lines و پارامتر Cols استفاده کنید برای مثال:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

 

 

 

بگذارید آنچه که تا اینجا توضیح دادم را در یک مثال برایتان نمایش دهم:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

8ifnjvx2uwllnp9ndn.jpg

لینک به دیدگاه

کدهای برگشتی در فایل Batch یا نتایج برنامه های اجرا شده

 

یکی از مهمترین مباحث در Batch Programming کدهای برگشتی یا Return Code میباشد. کدهای برگشتی به شما کمک میکنند تا از نتیجه دستورات و برنامه های اجرا شده آگهی پیدا کنید. در ادامه تی ام ال منیجر را در آموزش کدهای برگشتی در فایل Batch دنبال کنید.

 

زمانیکه یک دستور به درستی و با موفقیت اجرا میشود کد برگشتی آن صفر است ولی در صورتی که عملکرد آن با مشکل مواجه شود کد برگشتی آن غیر از عدد صفر میباشد. (عدد 1 یا بالاتر)

بررسی کدهای برگشتی در فایل Batch

 

یکی از Variable های پر اهمیت محیطی %ERRORLEVEL% نام دارد. %ERRORLEVEL% شامل آخرین کد برگشتی از برنامه یا Script های اجرا شده میباشد. اکثر دستورات خط فرمان مثل Echo و IF و Set مقدار موجود %ERRORLEVEL% را به خاطر میسپارند.

مرسوم ترین تکنیک برای بررسی عملکرد کدهای برگشتی استفاده از اپراتور NEQ یا Not Equal To در دستور IF میباشد.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

در دستور بالا گفته شده اگر عملکرد برنامه یا Script اجرا شده قبلی با خطا مواجه شود پیام Do Something Here to Address The Error را نمایش بده.

یکی دیگر از راههای که میتوان صحت عملکرد برنامه قبلی را بررسی نمود:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

استفاده نمودن از جمله ERRORLEVEL 1 صحیح میباشد. اما مشکل آن این است که شاید برنامه اجرا شده عدد منفی یا مثبت را ارسال کند. معمولا کمتر برنامه ای موجود میباشد که کلیه کدهای بازگشتی را سند کرده باشد به همین خاطر استفاده کردن از NEQ 0 بهتر از باقی روشها در خطا یابی میباشد.

برای بررسی نمودن یک کد مشخص میتوانید آن را با EQU وارد کنید. مثلا میتوانید یک برنامه یا Script را اجرا کنید و کد خروجی 9009 را بررسی کنید.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

در دستور بالا گفته شده اگر برنامه Program.exe با کد 9009 مواجه شد پیام Program.exe Not Found In Your Path را نمایش بده.

اجرای شرطی دستورات با استفاده از کد برگشتی

 

شما به سادگی میتوانید یک دستور را طبق شرایط مشخص شده با کدهای برگشتی اجرا کنید. مثلا اگر برنامه قبل به درستی کار خود را انجام داد باشد دستور X اجرا شود.

یک راه ساده و سریع برای اجرای یک دستور در صحت عملکرد دستور قبل استفاده از دو علامت && میباشد. به مثال ریز توجه کنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

به صورت کلی از علامت & برای اجرای دستور دیگر در همان خط فعلی استفاده میشود. ولی در بالا از دو علامت && استفاده شده که به معنای اجرای دستور بعد و بررسی صحت عملکرد دستور قبل میباشد. که در صورت اجرا شدن بدون مشکل پیام نوشته شدن در جلوی دستور Echo نمایش داده شود.

برای تشخیص کارکرد صحیح از دو علامت && استفاده میشود ولی برای تشخیص مشکل از دو علامت || استفاده میشود. به مثال زیر توجه کنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

یکی از روشهای ساده برای جلوگیری از اشتباه استفاده از دستور Exit به همراه پارامتر /B میباشد. (این دستور برای خروج از فایل Batch مورد استفاده قرار میگیرید نه اجرای عادی CMD) پس از پارامتر /B باید کد مشخص کننده خطا را درج کنید. برای مثال:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

اگر بخواهم یک روش دیگر همانند تکنیک بالا را برایتان توضیح دهم استفاده از دستور goto به همراه برچسب :EOF میباشد. EOF از سه کلمه End Of File تشکیل شده و باعث خروج یا بسته شدن فایل Batch میشود. به مثال توجه کنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

چند نکته برای کدهای برگشتی در فایل Batch

 

همیشه سعی کنید از کد صفر برای بررسی عملکرد موفق برنامه ها استفاده کنید. چرا که معمولا دیگر برنامه های فراخوان از IF ERRORLEVEL 1 برای بررسی فایل Batch استفاده میکنند.

یکی دیگر از کارهای که باید انجام دهید استفاده نمودن از دستور SET برای سند کردن کدهای برگشتی در فایل Batch میباشد

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

با سند سازی از کدهای برگشتی در اول فایلهای Batch کار خود را در ارزیابی عملکرد دستور ها و برنامه راحت کنید.

لینک به دیدگاه

ورودی های و خروجی ها Standard (آشنایی با مفهوم های STDIN و STDOUT و STDERR)

 

یکی از مباحثی که برای یادگیری بهتر Batch Programming نیاز به دانستن آن دارید. ورودی ها و خروجی ها (I/O) استاندارد میباشند. به صورت کلی سه نوع I/O وجود دارد که از قرار زیر میباشند.

 

 

 

ورودی استاندارد یا Standard Input که به اختصار STDIN گفته میشود. هر آنچه که شما با کیبورد تایپ میکنید STDIN میشود یعنی وارد شده های شما توسط کیبورد.

خروجی استاندارد یا Standard Output که به اختصار STDOUT گفته میشود. هر آنچه که با کیبورد وارد نموده اید و توسط مانیتور نمایش داده میشود را STDOUT میگویند. در واقع آنچه را که از مانیتور به عنوان خروجی میبینید STDOUT گفته میشود.

خروجی خطا یا Standard Error که به اختصار STDERR گفته میشود. STDERR هم همانند STDOUT میباشد با این تفاوت که به صورت مستقل برای نمایش خطا استفاده میشود.هر کدام از سه استاندارد ذکر شده دارای یک کد انحصاری برای خود میباشند. استاندارد STDIN با کد 0 مرجع شده استاندارد STDOUT با کد 1 مرجع شده و استاندارد STDERR با کد 2 مرجع شده.

 

 

[TABLE=class: grid, width: 500, align: center]

[TR]

[TD=align: center]نام کامل استاندارد[/TD]

[TD=align: center]نام مختصر استاندارد[/TD]

[TD=align: center]کد استاندارد[/TD]

[/TR]

[TR]

[TD=align: center]Standard Input[/TD]

[TD=align: center]STDIN[/TD]

[TD=align: center]0[/TD]

[/TR]

[TR]

[TD=align: center]Standard Output[/TD]

[TD=align: center]STDOUT[/TD]

[TD=align: center]1[/TD]

[/TR]

[TR]

[TD=align: center]Standard Error[/TD]

[TD=align: center]STDERR[/TD]

[TD=align: center]2[/TD]

[/TR]

[/TABLE]

 

 

تغییر مسیر یا Redirection

 

یکی از وظیفه های عمومی در فایلهای Batch ارسال یا انتقال خروجی برنامه ها به فایلهای متن یا Log میباشد. شما به سادگی میتوانید با علامت یا اپراتور > خروجی برنامه ها را که STDOUT یا STDERR میباشند به یک فایل دیگر ارسال یا منتقل کنید. به مثال زیر توجه کنید:DIR > Dirlist.txtدستور بالا خروجی دستور DIR را بجای ارسال به مانیتور به فایل Dirlist.txt منتقل میکند.

توجه کنید اگر فقط از یک علامت > استفاده کنید فایل Dirlist.txt بازنویسی یا Overwrite میشود. اما اگر از دو علامت >> استفاده کنید خروجی های جدید به زیر اطلاعات یا خروجی های قبلی منتقل میشوند. پس دیگر عمل بازنویسی یا Overwrite اتفاق نمی افتد. به مثال زیر توجه کنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

به صورت پیشفرض با استفاده از اپراتور های > و >> خروجی STDOUT ارسال میشود.

اما برای ارسال STDERR میتوانید از اعداد مرجع آنها استفاده کنید. برای مثال:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

برای ارسال هر دو استاندارد STDERR و STDOUT به یک فایل میتوانید از دستور زیر استفاده کنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

تا اینجا از علامت های > و >> برای خروجی گرفتن از دستورات استفاده شده اما برای ورودی گرفتن یا STDIN باید از علامت

 

در واقع بجای ورودی گرفتن از کیبورد میتوانید از یک فایل متنی با علامت

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

سرکوب نمودن خروجی برنامه ها

 

شما به سادگی میتوانید خروجی برنامه ها را سرکوب کنید یا از بین ببرید. یعنی نه خروجی از مانیتور نمایش داده شود نه به فایل خاصی منتقل شود. برای سرکوب نمودن خروجی برنامه ها باید از علامت > به همراه کلمه NUL استفاده کنید. به مثال زیر توجه کنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

در دستور بالا فرایند Ping گرفتن از آدرس 4.2.2.4 انجام میشود اما هیچ خروجی از آن نمایش داده نمیشود.

 

انتقال خروجی یک برنامه به ورودی یک برنامه دیگر

 

یکی دیگر از ویژگیهای که در CMD و فایلهای Batch وجود دارد انتقال STDOUT یک برنامه به STDIN یک برنامه دیگر میباشد. مثلا شما میتوانید خروجی برنامه DIR را به صورت مستقیم به برنامه More ارسال کنید. تا بتوانید نتایج دستور DIR را به درستی و به اندازه صفحه خط فرمان مشاهده کنید. برای انتقال STDOUT به STDIN باید از علامت | استفاده کنید. به مثال زیر توجه کنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

به فرایند انتقال خروجی یک برنامه (STDOUT) به ورودی یک برنامه (STDIN) دیگر Piping گفته میشود.

 

ساخت فایل متن با ورودی CON

 

شما به سادگی میتوانید با ارسال STDIN کیبورد به STDIN برنامه CMD که CON نام دارد یک فایل متنی بسازید. برای مثال:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

پس از نوشتن محتوای خود با فشردن کلید F6 و زدن کلید Enter خروجی برنامه خود را در فایل متنی Documents.txt ذخیره کنید.

لینک به دیدگاه

یکی از ویژگیهای Batch Programming برای راحت نمودن فرایند ساخت فایل Batch استفاده از Variable ها میباشد.

کار Variable چیست؟

برای توضیح کار Variable میتوان به دستور %TEMP% اشاره نمود. همانطور که میدانید %TMEP% در واقع یک پوشه در آدرس C:\Users\Username\AppData\Local\Temp میباشد. زمانی که شما %TEMP% را در Run تایپ میکنید آدرس مذکور در سیستم شما بالا می آید. کار Variable هم دقیقا همین است ساخت یک کلمه متغییر برای انجام یک فرایند مشخص. شما میتوانید با دستور SET در فایل Batch یک Variable با یک عمل مشخص بسازید.

 

 

استفاده از Variable به شما اجازه میدهد تا نیاز به تایپ مجدد جمله های تکراری را نداشته باشید. و بجای آنها از متغیر های ساخته شده استفاده کنید. البته Variable فقط برای خلاصه سازی استفاده نمیشود. بلکه مزیت های دیگری هم دارد که در فصول بعد به آنها اشاره خواهیم نمود.

همانطور که گفتم برای ساخت Variable باید از دستور SET استفاده کنید. نحوه ساخت Variable به این صورت میباشد: ابتدا دستور Set را وارد کنید، سپس نام مورد استفاده Variable خود را مشخص نموده و پس از آن یک علامت مساوی بگذارید. پس از علامت مساوی محتوای Variable خود را مشخص کنید.

برای مثال:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

دستور بالا یک Variable با نام tml و محتوای TML-MANAGER.IR درست میکند.

برای نمایش محتوای Variable ها میتوان از دستور echo استفاده نمود. برای اینکار، ابتدا دستور Echo را تایپ کنید سپس اسم variable را در بین %% قرار داده تا محتوای Variable به صورت متنی نمایش داده شود

برای مثال:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

krelzth7jhe0phj8e0n.jpg

 

ویندوز دارای Variable های خاص خود میباشد که هر کدام از آنها وظیفه مشخص را انجام میدهند. برای فهرست گیری از Variable های موجود در ویندوز، باید از دستور SET استفاده کنید (بدون پارامتر).

برای مثال:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

حال بگذارید ویژگی Variable را در فایل Batch نشان دهم.

به مثال زیر توجه کنید.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

در مثال بالا ابتدا با دستور SET یک Variable با نام ls ساخته شد که محتوای آن

D:\Data\Backup\Linux\Softwares\

میباشد. سپس در دستورات بعد بجای تایپ مسیر طولانی از Variable آن مسیر یعنی %ls% استفاده شد. که دقیقا کار همان مسیر را انجام میدهد.

 

 

دستور Set دارای دو پارامتر /a و /p میباشد. پارامتر /a برای محاسبات استفاده میشود یعنی مشخص میکند ورودی باید فقط عدد باشد. اما پارامتر /p برای دستی مشخص نمودن ورودی استفاده میشود. یعنی کاربر پس از تایپ دستور میتواند ورودی را مشخص کند. از پارامتر /p بیشتر برای ساخت منو ها استفاده میشود.

لینک به دیدگاه

[h=2]آموزش ساخت فایل Batch دستور IF[/h]همانند زبانهای برنامه نویسی، Batch Programing هم دارای دستوراتی برای هوشمند سازی فعالیت ها در فایل Batch میباشد. مثلا زمانیکه میخواهید کار یا وظیفه خاصی را در فایل Batch انجام دهید. میتوانید مشخص کنید اگر اتفاق X افتاد عمل 1 را انجام بده در غیر این صورت عمل 22 را انجام بده. در واقع از دستور IF برای اجرای شرطی برنامه ها در فایلهای Batch استفاده میشود.

 

 

دستور IF را میتوان برای سه هدف مختلف استفاده نمود:

 

 

یک: برای بررسی از صحت عملکرد برنامه ها یا Script های قبلی (ERRORLEVEL).

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

دو: برای مقایسه از همسان بودن دو رشته (String) مختلف (String).

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

سه: برای بررسی از وجود داشتن یا نداشتن فایلها و پوشه ها (EXIST).

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

در بخش بالا مثال های از دستور IF را به همراه نمونه ای از دستورات آن مشاهده میکنید.

 

 

 

  1. از کلمه NOT برای معکوس نمودن بررسی دستور IF استفاده میشود.
  2. از Variable یا متغیر ERRORLEVEL برای بررسی کد برگشتی دستور قبل استفاده میشود.
  3. بجای Number باید از کد برگشتی مناسب استفاده کنید.
  4. بجای Command باید دستور مورد نظر خود را وارد کنید.
  5. رشته یا String1 در واقع یک مقدار برای بررسی و مقایسه آن با String2 میباشد.
  6. از کلمه Exist برای بررسی از وجود فایلها و پوشه ها استفاده میشود.

[h=3]بررسی عملکرد برنامه قبلی[/h]همانطور که گفتم برای بررسی از صحت عملکرد برنامه های اجرا شده، باید از Variable یا متغیر ERRORLEVEL استفاده کنید. برای مثال:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

در دستور بالا گفته شده اگر کار برنامه Ping به درستی انجام شود. پیام Your Ping Was Successful را نمایش بده.

دستور IF دارای پنج Compare-op یا Operator برای بررسی هوشمندانه تر کد ها میباشد. استفاده از Compare-op به شما اجازه میدهد اعداد بالاتر و پایین تر کد ها را نیز بررسی کنید. در ادامه اسم این Compare-op ها را مشاهده میکنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

معنای Compare-op های بالا از قرار (EQU یعنی مساوی است با) – (NEQ یعنی مساوی نیست با) – (LSS یعنی کمتر است از) – (LEQ یعنی کمتر یا مساوی است با) – (GTR یعنی بزرگتر است از) میباشد.

برای استفاده از Operator های بالا یا همان Compare-op ها باید نحوه استفاده از دستور به این شکل میشود:

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

در دستور بالا گفته شده اگر کد برگشتی با عدد 0 مساوی نبود پیام Operation Failed را نمایش بده.

[h=3]مقایسه دو Strings با یکدیگر[/h]برای مقایسه دو String با یکدیگر باید از دو علامت == در بین String ها استفاده کنید. به مثال زیر توجه کنید.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

در دستور بالا گفته شده اگر %TMP% با آدرس C:\Users\Home\AppData\Local\Temp یکی بود پیام Both String Are Same را نمایش بده.

[h=3]بررسی از وجود داشتن یا نداشتن فایل[/h]برای بررسی از وجود یک فایل یا پوشه در هارد دیسک باید از کلمه Exist استفاده کنید.

 

برای مثال

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

همانطور که میدانید %tmp% مشخص کننده پوشه Temp در آدرس C:\Users\AccountName\AppData\Local\Temp میباشد. اگر بخواهیم به صورت جزئی نگاه کنیم، دستور if exist به معنای “اگر وجود داشت” است سپس مقصود if exist با کلمه %tmp% مشخص شده. در آخر هم دستور echo برای نمایش پیغام Temporary Folder Was Found استفاده شده. به زبان ساده در دستور بالا گفته شده اگر پوشه %tmp% وجود داشت پیغام Temporary Folder Was Found را نمایش دهد.

به مثال معکوس شده دستور IF با کلمه NOT توجه کنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

در مثال بالا بجای if exist از if not exist استفاده شده که به معنای “اگر وجود نداشت” میباشد (متضاد دستور if exist) سپس از کلمه %tmp% به عنوان مقصود if not exist استفاده شده و در آخر هم از دستور echo برای نمایش پیام Temporary Folder Not Found استفاده شده. پس به طور کلی کار دستور بالا برای بررسی کردن پوشه %tmp% میباشد. تا در صورت عدم وجود %tmp% پیغام Temporary Folder Not Found را نمایش دهد.

لینک به دیدگاه

ایجاد منو در فایل Batch به سادگی آب خوردن میباشد. برای ساخت منو باید از Colon یا همان علامت نقل قول (:) در اول جمله استفاده کنید.

 

ساخت فهرست نمایشی منوها

 

برای شروع یک فایل Text بسازید سپس فرمت آن را به Bat یا cmd تغییر دهید. و از دستورات پایه (echo – title – color) برای مشخص نمودن منوی گرافیکی فایل Batchh استفاده کنید. برای مثال:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

تا اینجا فقط از دستورات فصل اول برای ساخت ظاهر منو یعنی نمایش Option های که کاربر پایانی میتواند از طریق آنها وظایف مشخص را انتخاب کند را بیان کردیم. و تنها مورد جدیدی که اضافه شده :menu میباشد. این مورد که در ابتدای آن : گذاشته شده مشخص کننده یک بخش در فایل Batch است. شما میتوانید با گذاشت علامت : بخش هی مختلف برای فایل Batch خود بسازید.

 

نکته: همانطور که گفتم علامت : برای مشخص نمودن بخشهای مختلف فایل Batch میباشد. شما میتوانید از هر کلمه ای به همراه علامت : برای مشخص نمودن یک بخش استفاده کنید. در ادامه فایده بخش بندی را متوجه خواهید شد.

 

 

 

ساخت ورودی های منو

 

اما دستوری که باید برای ساخت ورودی های منو از آن استفاده شود؛ دستور Set با پارامتر /p میباشد. از دستور Set برای تغییر یک Variable به Variable دیگر استفاده میشود. برای مثال:

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

همانطور که گفتم دستور set برای تغییر یک Variable به Variable دیگر استفاده میشود. در بالا هم حرف M یک Variable یا متغیر میباشد که در جمله های پایین آن با دستور IF مشخص شده اگر همراه با Variable حرف M حرف N وارد شود با دستور Goto به بخش Notepad برود اما اگر با C وارد شد به بخش Calculator برود.بخش بندی فایل Batch

 

حال باید بخش های مختلفی که در بالا مشخص نموده ایم را درست کنیم. در بالا دو بخش Notepad و Calculator مشخص شده که باید با علامت : این بخشها را بسازیم.

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

در بالا دو بخش با نام های :NOTEPAD و :CALCULATOR ساخته شد که در هر بخش با دستور START برنامه مشخصی اجرا میشود. NOTEPAD همان برنامه ویرایشگر متن ویندوز میباشد و CALC هم همان ماشین حساب است. در آخر هر بخش از دستور Exit برای خروج از فایل Batch استفاده شده، حال بگذارید آن چرا که به حال به صورت بخش بخش توضیح داده ام را یکجا در یک مثال برایتان بنویسم:

 

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

خلاصه آموزش ساخت منو در فایل Batch

 

در این فصل یک فایل Batch درست کردیم که دارای سه بخش میباشد: یک Menu دو Notepad سه Calculator برای مشخص کردن بخش های مختلف از علامت Colon یا همان نقل قول : استفاده کردیم. از دستور Echo برای ساخت فهرست ها استفاده شد و از دستور Set برای مشخص نمودن ورودی ها و تغییر Variable ها استفاده شد. از دستور IF برای مشخص نمودن شرایط دستور Set استفاده کردیم. در آخر از دستور Start برای فراخوانی برنامه های ویندوز مثل ماشین حساب (Calc) و ویرایشگر متن (Notepad) استفاده نمودیم.

لینک به دیدگاه

ساخت حلقه در فایل Batch با استفاده از دستور for

 

فرض کنید بیش از ده هزار فایل در درایوهای مختلف کامپیوتر خود دارید. از این ده هزار فایل دو هزار فایل آن با فرمت TXT میباشند و شما میخواهید فرمت تمام فایلهای متنی را از TXT به BAT تغییر دهید. یا اینکه از همه فایلهای متنی یک نسخه کپی در هارد اکسترنال خود تهیه نماید. به صورت عادی برای انجام چنین کاری باید برای تک تک فایلها زمان خاصی را صرف کنید تا ابتدا وارد درایو و پوشه آن فایلها شوید. سپس فایل را تغییر نام داده و یا از آن نسخه کپی تهیه نماید. در حالت عادی انجام چنین فرایندی حداقل چند ساعت زمان میبرد. اما با استفاده از دستور FOR در فایل Batchh میتوانید این فرایند چند ساعته را به چند دقیقه کاهش دهید.

 

با استفاده از دستور FOR میتوانید یک عمل خاص را روی بیش از چند صد هزار فایل (بدون محدودیت) انجام دهید. دستور FOR که به عمل Loop هم معروف است به شما کمک میکند تا از نوشتن دستورات متعدد جلوگیری کنید. و کلیه کارهای خود را در یک دستور خلاصه کنید.

 

دستور FOR به شکل زیر نوشته میشود:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

برای استفاده از دستور FOR در حالت عادی Command Prompt باید از یک % در کنار Variable استفاده کنید. اما اگر میخواهید در فایل Batch از دستور FOR استفاده کنید باید از دو %% در کنار Variable استفاده کنید. استفاده از حروف بزرگ و کوچک در Variable با هم متفاوت است.

SET بخشی است که باید در آن یک یا چند فایل و پوشه و یا محدوده از مقدار ها را باید مشخص کنید. فایلها و پوشه های مشخص شده در بخش SET توسط دستور (Command) مورد پردازش قرار میگیرند.

 

Command همان دستوری است که میخواهید روی بخش SET تاثیر بگذارد.

 

Command Line Option پارامتر های که میخواهید از دستور مشخص شده در بخش Command مورد استفاده قرار بگیرند را باید مشخص کنید.

 

به مثال دستور FOR توجه کنید:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

در دستور بالا گفته شده از فایلهای موجود در پوشه پروفایل فهرستی تهیه شود و با دستور ECHO این فایلها را نمایش داده شوند. به مثال بعدی توجه کنید:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

نکته: علامت \* مشخص کننده کلیه فایلهای موجود در پوشه مشخص شده قبل از این علامت میباشد.

 

 

در دستور بالا گفته شده تمام فایلها با پسوند *.JPG را از پوشه Desktop به آدرس F:\SHIFT\ کپی کند.

اگر بخواهم فرایند بالا را به زبان ساده بیان کنم: ابتدا دستور FOR یک Variable با نام %I درست میکند که محتوای آن در بخش SET مشخص شده است. این محتوا شامل فایلهای JPG در آدرس %HOMEPATH%\DESKTOP میباشند.

سپس با DO میگوید دستور Copy داده های دریافت شده از Variable یا متغیر %I را به آدرس F:\SHIFT\ کپی کند.

حال اگر بخواهید همین فرایند بالا را روی پوشه ها انجام دهید. باید از پارامتر /D بعد از دستور For استفاده کنید.

 

به مثال زیر توجه کنید:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

دستور بالا کلیه پوشه های موجود در آدرس %TEMP% را توسط دستور ECHO به نمایش میگزارد.

برای بررسی نمودن یک درایو از پوشه Root باید از پارامتر /R استفاده کنید.

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

نکته: حرف نقطه در بین پرانتز مشخص کننده کلیه پوشه ها ممکن میباشد. اما اگر بخواهید کلیه فایلها را مشخص کنید باید از علامت * استفاده کنید. همچنین برای مشخص نمودن هر دو فایلها باید هر دو گزینه را وارد نموده و فقط یک علامت , پس از گزینه اول بگزارید. به مثال زیر توجه کنید:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

برای چرخش بین مقدار های تکراری باید از پارامتر /l بعد از دستور for استفاده کنید. فرایند به این صورت است در پرانتز SET باید ابتدا مقدار شروع را مشخص کنید سپس مقدار کاهش یا افزایش را مشخص کنید در آخر مقدار پایانی را مشخص کنید. به مثال زیر توجه کنید:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

دستور بالا به ترتیب از عدد 1 تا عدد 10 را پشت سر هم با دستور ECHO نمایش میدهد.

همچنین میتوانید شمارش را به صورت عکس انجام دهید. به مثال زیر توجه کنید:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه

[LIST=1]
[*]برای ساخت فایل Batch ابتدا یک فایل متنی (New Text Document) بسازید سپس آن را ویرایش کنید و با دستور @echo off آن را به حالت Interactive یا غیر تعاملی وارد کنید.
[*]از دستور Title برای مشخص نمودن عنوان برنامه که با Batch Programming میسازید استفاده کنید.
[*]برای بهبود خوانایی متن های که با دستور Echo تایپ میکنید، همیشه پس از هر پیام Echo یک بگزارید تا متن شما به درستی برای مخاطب نمایش داده شود.
[*]از دستور Color برای رنگی نمودن متن و زمینه فایل Batch استفاده کنید.
[*]هر برنامه یا دستور که اجرا میشود دارای دو کد بازگشتی میباشد که کد صفر (0) مشخص کننده عملکرد صحیح برنامه میباشد و معمولا کد 1 به بالا به معنای وجود خطا در اجرای برنامه است.
[*]برای بررسی نمودن عملکرد برنامه ها میتوان از Variable یا متغیر %ERRORLEVEL% استفاده نمود.
[*]متغیر ها یا Variable ها به شما کمک میکنند تا دستورات و جمله های بلند را در یک کلمه یا یک حرف خلاصه کنید.
[*]برای ساخت Variable باید از دستور SET استفاده کنید.
[*]در CMD سه نوع استاندارد ورودی و خروجی وجود دارد که STDIN یا Standard Input به آنچه که شما توسط Keyboard وارد میکنید گفته میشود. STDOUT یا Standard Output به خروجی گفته میشود که شما آن را در مانیتور تماشا میکنید و STDERR یا Standard Error به خطاهای نمایش داده شده از مانیتور گفته میشود.
[*]استاندارد STDIN با کد 0 مشخص شده و استاندارد STDOUT با کد 1 و استاندارد STDERR با کد 2 مشخص میشود.
[*]برای اجرای شرطی برنامه ها و دستورات باید از دستور IF استفاده کنید.
[*]از دستور IF میتوان برای بررسی از وجود داشتن فایلها و یا بررسی صحت عملکرد برنامه ها و یا مقایسه دو مقدار استفاده نمود.
[*]با استفاده از دستور SET و دستور IF میتوانی یک منوی کاربردی برای فایل Batch بسازید.
[*]یکی از دستورات کاربردی برای کاهش تایپ مجدد دستورات دستور FOR میباشد.
[*]با دستور FOR میتوانید فایلها و پوشه ها و یا هر دو آنها را بررسی کنید.
[/LIST]

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...