من نمیخواهم با صحبت کردن درمورد DOS و دستورات آن و یا تاریخچه و چگونگی بوجود آمدن آن ، سرتان را بدرد بیاورم.
فقط همینقدر میگویم که ما اگر با دستورات DOS آشنا باشیم میتوانیم خیلی از کار هایمان را در ویندوز بطور اتوماتیک
و حتی مخفی انجام دهیم که نمونه هایش را در تاپیک های مختلف ، مخصوصا" در بحث های اتوماتیک سازی نصب
برنامه ها مشاهده کردید.
در این بحث من دستورات موجود در کتاب Batch File Programming نوشته Ankit Fadia را نه آنگونه که نویسنده گفته
بلکه با روش خودم توضیح خواهم داد. و سعی خواهم کرد که با آوردن مثال هائی شما را با طرز کار دستورات مختلف
آشنا کنم.
تذکرات:
__ دستورات یک فایل Batch دستوراتی هستند که باید بترتیب و سطر به سطر داخل برنامه Notepad نوشته شده و
در انتها این فایل را باید با پسوند bat ذخیره کنیم.
__ یک فایل Batch باید دارای پسوند bat باشد ولی اگر در ویندوز بجای پسوند bat از پسوند cmd استفاده کنید ، فایل
Batch بهتر و سریعتر کار خواهد کرد.
__ فایل Batch در موقع اجرا دستورات نوشته شده را یکی یکی و سطر به سطر اجرا میکند. یعنی اول دستور سطر
اول و بعد دستور سطر دوم و الی آخر...
چند دستور مقدماتی
============
برنامه Notepad را باز کرده و داخل آن عبارت xxx.exe را تایپ کرده و سپس آن را با نام Do.cmd در دسکتاپ ذخیره
کنید.(توضیح اینکه فایلی بنام xxx.exe وجود ندارد و من برای اینکه بتوانم شما را با مفهوم بعضی دستورات آشنا کنم
گفتم این عبارت را تایپ کنید).
حالا با دابل کلیک کردن روی فایل Do.cmd آن را اجرا کنید.
هیچ اتفاقی نخواهد افتاد ، فقط شما یک لحظه صفحه سیاهی را خواهید دید که بسرعت بسته میشود.
در این جا فایل Batch اجرا شده و کاری را که باید ، انجام داده ولی ما نمیتوانیم ببینیم که چه کاری انجام داده است.
پس چکار باید بکنیم؟ چگونه بفهمیم در اثر اجرای این فایل چه عملی صورت گرفته است؟
فایل Do.cmd را توسط Notepad باز کرده و در سطر دوم (زیر عبارت xxx.exe) دستور pause را تایپ کرده و ذخیره کنید
حال دوباره فایل Do.cmd را اجرا کنید. صفحه ای مثل شکل زیر نمایان خواهد شد.

می بینید که صفحه بالا تا زمانیکه شما یک کلیدی را در کیبورد فشار دهید ، باز می ماند.
گفتیم که یکی از ویژگی های فایل Batch این است که دستورات را یکی یکی و سطر به سطر اجرا میکند. حال ببینیم
با اجرای فایل Do.cmd چه اتفاقی افتاده:
1. فایل Batch شروع به اجرای دستور موجود در اولین سطر (یعنی xxx.exe ) میکند. همان طور که در تصویر بالا
مشاهده میکنید ، برنامه خواسته دستور xxx.exe را اجرا کند ولی نتوانسته و گفته که نمیدانم xxx.exe چه دستوری هست.
2. فایل Batch بعد از دادن پیام در رابطه با فایل xxx.exe شروع به اجرای دستور دوم در سطر دوم (یعنی pause) میکند.
فایل Batch یکی از خاصیت هایش این است که اگر به دستور pause رسید دو تا کار انجام دهد:
الف: صفحه خط فر مان را تا زمانیکه کاربری کلیدی را فشار دهد ، باز نگهدارد.
ب . در آخرین سطر خط فرمان به کاربر پیغام دهد که "کلیدی را فشار بده تا ادامه دهم"
پس تا اینجا با عملکرد دستور pause آشنا شدیم.
اگر به تصویر بالا دقت کنید می بینید که پراز نوشته های مختلف بوده و بسیار گیج کننده است. شرح سطور تصویر بالا
بصورت زیر است:
1. در سطر اول می بینیم که فایل Do.cmd که از دسکتاپ اجرا کردیم ، اول سعی کرده فایل xxx.exe را در دسکتاپ
اجرا نماید.
2. فایل Batch نتوانسته فایل xxx.exe را شناسائی کند لذا در سطور 2 و 3 به ما پیغام داده که دستور یا فایلی بنام
xxx.exe را نمی شناسد.
3. در سطر بعدی می بینیم که فایل Batch دستور pause را اجرا کرده.
4. و در سطر آخر بخاطر اجرای دستور pause پیام داده شده که کلیدی را برای ادامه کار فشار دهید.
می بینید که صفحه بسیار شلوغ است و ما باید سعی کنیم که کاری کنیم که صفحه اینقدر شلوغ نباشد.اینجاست
که یک دستور دیگر بکار می آید.
در تصویر بالا دو تا پیغام داریم که لازم است دیده شوند اولی اینکه برنامه میگوید فایل xxx.exe را نمی شناسد و دوم
اینکه پیغام میدهد کلیدی را فشار دهید تا کار را ادامه دهم.
بنابر این در تصویر بالا نیازی به دیده شدن سطور اجرای فرمان ها ( در این مثال سطور 1 و 4 ) نیست.
برای این کار فایل Do.cmd را توسط Notepad باز کرده و در اول سطر (قبل از سطر xxx.exe) دستور @ECHO OFF را
تایپ کرده و ذخیره کنید
حال اگر مجددا" فایل Do.cmd را اجرا کنید. صفحه ای مثل شکل زیر نمایان خواهد شد.می بینید که سطور 1و 4 قبلی
دیگر نشان داده نمیشوند:

پس دیدیم که کار دستور ECHO OFF این است که سطور اجرای دستورات را مخفی کند.
یک دستور دیگر را هم امروز یاد میگیریم. ببینید ما در مثال هائیکه امروز کار کردیم ، آخرین فایل Batch که استفاده
کردیم دارای سه سطر بصورت زیر بود:
کد:
@ECHO OFF
xxx.exe
pause
فرض کنید که ما امروز فایل Do.cmd را با مشخصات بالا درست و استفاده کردیم. و بعد این فایل را کنار گذاشته و
جائی ذخیره کردیم.
و فرضا" دو سال بعد دوباره این فایل را با Notepad باز کردیم .متن بالا را خواهیم دید . الان میدانیم فرضا" دستور
pause کارش چیست و چرا استفاده کردیم ولی دو سال بعد دیگر یادمان نیست
ما میتوانیم در بالای هردستوری که داده ایم ، شرحی در مورد آن بنویسیم برای مثال میتوانیم در فایل Do.cmd
میتوانم توضیح زیر را بنویسم:
.....This is my first
برای اینکه دستورات امروز را درست متوجه شوید ایندفعه در فایل Do.cmd بجای دستور xxx.exe دستور notepad.exe
را قرار دهید و دستور pause را هم حذف کنید که در نتیجه به شکل زیر در خواهد آمد:
کد:
@ECHO OFF
REM This is my first ......
notepad.exe
اگر درست دقت کنید متوجه می شوید که قبل از توضیحات از دستور REM استفاده شده و بعد از یک فاصله توضیحاتمان را
نوشته ایم.
اگر توضیحاتمان در یک سطر جا نگیرد بایستی در اول سطر بعدی دوباره از دستور REM و یک فاصله استفاده کنیم.
فایل Batch موقع اجرا ، سطوری را که با دستور REM شروع شده اند ندیده میگیرد.
حالا فایل Do.cmd را با مشخصه های بالا اجرا کنید
برنامه notepad اجرا شده (دیگر نخواهد گفت نمی شناسم) و حالا صفحه فرمان هم نگاه کنید
اکنون در آخرین سطر فایل Do.cmd دوباره دستور pause را اضافه کرده و باز هم آن را اجرا کنید. چه فرقی کرد؟
اگر سوالاتی دارید مطرح فرمائید تا بعد در مورد دستورات دیگر هم صحبت کنم.
تا روزی دیگر و ادامه بحث
علاقه مندی ها (بوک مارک ها)