با سلام ودرود
دستوراتی که در داخل فایلهای Batch مینویسیم چجوری هستند وچجوری باید دستورات داخل فایل رو پیدا کنیم که چه کلمه ای چکار میکند کلا اموزش این فایلها
با سلام ودرود
دستوراتی که در داخل فایلهای Batch مینویسیم چجوری هستند وچجوری باید دستورات داخل فایل رو پیدا کنیم که چه کلمه ای چکار میکند کلا اموزش این فایلها
بحث در مورد فایل های Batch خیلی بحث طولانی و زمانبری هست
بهر حال ، من سال ها قبل اولین بار مطالعه فایل Batch را با فایل pdf زیر شروع کردم»
Batch File Programming By Ankit Fadia
این مطلب را کاربری با نام Ankit Fadia نوشته که نمیدانم چرا فکر میکنم نویسنده یک ایرانی باید باشد
[SIGPIC][/SIGPIC]
سلام
طرف يک هکر بسيار معروف هنديه! Ankit Fadia - Wikipedia, the free encyclopedia
سپاس
دوستدار هميشگي شما "eDvArDo"
دلِ هر ايراني كه براي ايران نميتپد، بهتراست نتپد! (پروفسور حسابي)
آيا پاسخ سوالي را بدانم بهتر است، يا اينكه ندانسته از دنيا بروم؟! (ابوريحان بيروني)
پس از سالها جهد و تلاش در كسب علم و معرفت، دانستم كه هيچ ندانستم! (علامه حسن زاده آملي)
سلام
اينم يه فايل pdf فارسي که مطالب آموزشي و کدهاي مربوطه براي دستوارت cmd رو داره. پيوست براي دوستان خوبم:
سپاس
دوستدار هميشگي شما "eDvArDo"
دلِ هر ايراني كه براي ايران نميتپد، بهتراست نتپد! (پروفسور حسابي)
آيا پاسخ سوالي را بدانم بهتر است، يا اينكه ندانسته از دنيا بروم؟! (ابوريحان بيروني)
پس از سالها جهد و تلاش در كسب علم و معرفت، دانستم كه هيچ ندانستم! (علامه حسن زاده آملي)
استاد اگه لینکی برای کتاب فارسی دارید ممنون میشم بذارید
سهند عزیز کتابی به زبان فارسی سراغ ندارم
ولی سعی میکنم که در ادامه همین تاپیک ، خلاصه ای از کتابی که در پست شماره 2 از Ankit Fadia معرفی
کردم را ، بطور مفهومی ( البته با تغییرات و روش خودم ) ترجمه و توضیح دهم.
[SIGPIC][/SIGPIC]
سلام
سهندجان، مگه اون فايلي که در بالا پيوست کردمرو دانلود نکرديد؟!استاد اگه لینکی برای کتاب فارسی دارید ممنون میشم بذارید
فکر کنم براي آشنايي و شروع خوب باشه.
سپاس
دوستدار هميشگي شما "eDvArDo"
دلِ هر ايراني كه براي ايران نميتپد، بهتراست نتپد! (پروفسور حسابي)
آيا پاسخ سوالي را بدانم بهتر است، يا اينكه ندانسته از دنيا بروم؟! (ابوريحان بيروني)
پس از سالها جهد و تلاش در كسب علم و معرفت، دانستم كه هيچ ندانستم! (علامه حسن زاده آملي)
من نمیخواهم با صحبت کردن درمورد 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 که استفاده
کردیم دارای سه سطر بصورت زیر بود:
فرض کنید که ما امروز فایل Do.cmd را با مشخصات بالا درست و استفاده کردیم. و بعد این فایل را کنار گذاشته وکد:@ECHO OFF xxx.exe pause
جائی ذخیره کردیم.
و فرضا" دو سال بعد دوباره این فایل را با Notepad باز کردیم .متن بالا را خواهیم دید . الان میدانیم فرضا" دستور
pause کارش چیست و چرا استفاده کردیم ولی دو سال بعد دیگر یادمان نیست
ما میتوانیم در بالای هردستوری که داده ایم ، شرحی در مورد آن بنویسیم برای مثال میتوانیم در فایل Do.cmd
میتوانم توضیح زیر را بنویسم:
.....This is my first
برای اینکه دستورات امروز را درست متوجه شوید ایندفعه در فایل Do.cmd بجای دستور xxx.exe دستور notepad.exe
را قرار دهید و دستور pause را هم حذف کنید که در نتیجه به شکل زیر در خواهد آمد:
اگر درست دقت کنید متوجه می شوید که قبل از توضیحات از دستور REM استفاده شده و بعد از یک فاصله توضیحاتمان راکد:@ECHO OFF REM This is my first ...... notepad.exe
نوشته ایم.
اگر توضیحاتمان در یک سطر جا نگیرد بایستی در اول سطر بعدی دوباره از دستور REM و یک فاصله استفاده کنیم.
فایل Batch موقع اجرا ، سطوری را که با دستور REM شروع شده اند ندیده میگیرد.
حالا فایل Do.cmd را با مشخصه های بالا اجرا کنید
برنامه notepad اجرا شده (دیگر نخواهد گفت نمی شناسم) و حالا صفحه فرمان هم نگاه کنید
اکنون در آخرین سطر فایل Do.cmd دوباره دستور pause را اضافه کرده و باز هم آن را اجرا کنید. چه فرقی کرد؟
اگر سوالاتی دارید مطرح فرمائید تا بعد در مورد دستورات دیگر هم صحبت کنم.
تا روزی دیگر و ادامه بحث
[SIGPIC][/SIGPIC]
استاد از توضیحات تکمیل شما خیلی خیلی ممنونم واقعا خسته نباشیدفقط چندتا سوال داشتم که یک به یک میپرسم ببخشید استاد در بعضی از فایلهای بچ دیدم که از شکل وحرکات استفاده شده اینها چه معنی دارند
dp0
"xxxx"
~
%
/
nul
\
سهند عزیز
صبر داشته باش تا اول بحث های کلی و مقدماتی را تمام کنیم
اگر مطالب را دنبال کنی بمرور جواب اکثریت سوالاتت را خواهی گرفت
دستور ECHO
=======
گاهی در یک فایل Batch ، لازم می دانیم که که پیغامی به کاربر بدهیم.
شاید لازم باشد که در یک مرحله از کار ، پرسشی از کاربر کرده و بعد بر اساس جواب کاربر کاری انجام شود.
در اینگونه موارد میتوانیم با استفاده از دستور ECHO به کاربر پیغام دهیم.
برای استفاده از این دستور اول دستور را نوشته و سپس بعد از یک فاصله ، پیغام خود را می نویسیم.
توجه داشته باشید که با این دستور فقط میتوان در یک سطر پیام داد. و اگر پیام ما بیش از یک سطر باشد بایستی
به سطر بعدی رفته و دوباره دستور فوق الذکر را نوشته و بعد از یک فاصله ،نصفه دوم پیام را بنویسیم.
برای مثال فایل Batch زیر را نوشته و اجرا کنید:
حال اگر آن را اجرا کنید صفحه ای مثل تصویر زیر خواهید داشت:کد:@ECHO OFF ECHO ===================================== ECHO = Hello my friend = ECHO = You are welcom to ariadl = ECHO = Have nice times = ECHO ===================================== pause
می بینید که پیام های شما در چند سطر نشان داده میشوند.
ولی بهتر است فایل Batch با لا را بصورت زیر تغییر داده و اجرا کنید:
با اجرای آن صفحه ای مثل شکل زیر خواهید داشتکد:@ECHO OFF ECHO ===================================== ECHO = Hello my friend = ECHO. ECHO = You are welcom to ariadl = ECHO. ECHO = Have nice times = ECHO ===================================== pause
نکته ای که در فایل Batch بالا و جود دارد این است که همانطور که در شکل می بینید مابین سطور نوشته ها یک
سطر خالی گذاشته ایم تا سطور واضح تر دیده شوند برای ایجاد فاصله خالی بین سطور از دستور ECHO با مختصر
تغییری استفاده کرده ایم (یعنی اول دستور ECHO را نوشته و به آن همانطور که می بینید یک دات (.) اضاف کرده ایم.
[SIGPIC][/SIGPIC]
علاقه مندی ها (بوک مارک ها)