صفحه 2 از 14 نخستنخست 12345612 ... آخرینآخرین
نمایش نتایج: از شماره 11 تا 20 , از مجموع 135

موضوع: دستورات فایلهای Batch

  1. #11
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,154
    سپاس
    4,676
    سپاس گذاری شده :12,879 بار در 2,169 پست
    قدرت امتیاز دهی
    38896
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    در تکمیل مطلب جلسه قبلی فایل Batch زیر را درست کرده و اجرا فرمائید و بعد کلیدی را از کیبورد فشار دهید.

    کد:
    @ECHO OFF
    Title=*************===== Shirin Zaban ===== ***********
    MODE CON: COLS=52 LINES=15
    color 1E
    ECHO.
    ECHO        =====================================
    ECHO        =       Hello my friend             =
    ECHO        =                                   =
    ECHO        =    You are welcom to ariadl       =
    ECHO        =                                   =
    ECHO        =        Have nice times            =
    ECHO        =====================================
    ECHO.
    ECHO.
    ECHO        =   Press any key to Continue ...   =
    pause>nul
    cls
    color 3f
    ECHO.
    ECHO.
    ECHO.
    ECHO        @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    ECHO        @                                   @
    ECHO        @        Thank you very much        @
    ECHO        @                                   @
    ECHO        @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    ECHO.
    ECHO.
    ECHO        =   Press any key to Continue ...   =
    pause>nul
    اجرای این فایل با فایل های قبلی چه فرقی دارد؟

    دستور DEL
    =======

    این دستور یک یا چند فایل را حذف (Delete) میکند
    فرض کنید که شما پوشه ای بنام XXX در روت درایو C دارید (C:\XXX) ، و تعدادی فایل درون آن قرار دارند.و باز فرض کنیم
    که شما میخواهید با استفاده از فایل Batch فایلی بنام AAA.mp3 را که داخل پوشه C:\XXX قرار دارد را دیلیت کنید.
    میتوانید اینکار را با فایل Batch با محتوای زیر انجام دهید:

    کد:
    @ECHO OFF
    DEL C:\XXX\AAA.mp3
    حالا فرض کنیم که در این مثال تعدادی فایل مختلف درون پوشه C:\XXX وجود دارد و شما میخواهید با فایل Batch همه آن
    ها را دیلیت کنید. دستور لازم برای اینکار بصورت زیر است:

    کد:
    @ECHO OFF
    DEL C:\XXX\*.*
    دستور بالا همه فایل ها را حذف خواهد کرد ولی قبل از این کار یک پیغام داده و خواهد پرسید که " آیا مطمئن هستید؟"
    و شما باید اول کلید Y را در کیبورد فشار داده و سپس کلید Enter را بزنید تا همه فایل های داخل این پوشه حذف شوند.

    البته اگر بخواهید که از شما پرسشی نکند و مستقیما" همه فایل ها را دیلیت کند میتوانید از دستور زیر استفاده بکنید:

    کد:
    @ECHO OFF
    DEL C:\XXX\*.* /Q
    تذکر:
    --------

    دوستان عزیز ، دستوراتی که ما مطالعه میکنیم در شرایط مختلف ، بصورت متفاوتی عمل خواهند کرد که نمونه اش را
    در مثال بالا مشاهده کردید.
    من نمیتوانم همه دستورات و همه شرایط ممکنه را توضیح دهم.
    چون این کار باعث خواهد شد که شرح مطلب این تاپیک ، ماه ها و ماه ها طول بکشد
    لذا من فقط تعدادی از دستورات و شرح کار عادی آن ها را توضیح داده و رد خواهم شد.
    اگر در هنگام تمرینات خود با مشکلی روبرو شدید اعلام بفرمائید تا در موردشان بحث کنیم.



  2. 8 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  3. #12
    مدیر انجمن کامپیوتر
    همديگر را دوست داشته باشيم و بهم احترام بگذاريم
    تاریخ عضویت
    Mar 2012
    محل سکونت
    زیر سایه شما
    نوشته ها
    794
    سپاس
    3,447
    سپاس گذاری شده :3,451 بار در 790 پست
    حالت من : Ghamgin
    قدرت امتیاز دهی
    13187
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    سلام

    استاد عزيز و مهربانم:

    1- اگه بخواهيم تمامي فايلهاي اون پوشه "بجز" فلان فرمت يا فلان فايل حذف بشه دستور چطوري خواهد شد؟

    2- آيا براي صادر کردن دستور بعدي که از همون نوع باشه (مثل دستور حذف فايل در فلان پوشه) البته اينبار در جاي ديگه بايد در سطر بعدي مثل دستور بالا عمل کنيم يا اينکه ميشه در ادامه همون سطر اضافه کنيم؟ (دستور چطوري ميشه؟)

    سپاس
    دوستدار هميشگي شما "eDvArDo"

    7n1wj1mlvxoxejezfhye

    دلِ هر ايراني كه براي ايران نمي‌تپد، بهتراست نتپد! (پروفسور حسابي)

    آيا پاسخ سوالي را بدانم بهتر است، يا اينكه ندانسته از دنيا بروم؟! (ابوريحان بيروني)

    پس از سالها جهد و تلاش در كسب علم و معرفت، دانستم كه هيچ ندانستم! (علامه حسن زاده آملي)

  4. 6 کاربر برای این پست سودمند از eDvArDo عزیز سپاس گذاری نموده اند:


  5. #13
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,154
    سپاس
    4,676
    سپاس گذاری شده :12,879 بار در 2,169 پست
    قدرت امتیاز دهی
    38896
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    هر دستور باید در سطر متفاوتی نوشته شود.
    اگر بخواهیم فقط فایل های بخصوصی حذف شوند باید آن ها را مشخص کنیم فرضا" با دستور زیر فقط همه فایل هایی
    دیلیت خواهند شد که دارای پسوند mp3 و یا txt باشند:

    کد:
    @ECHO OFF
    DEL C:\XXX\*.mp3 /Q
    DEL C:\XXX\*.txt /Q
    دستور MD یا MKDIR
    ============

    دو تا دستور بالا یکی هستند و شما میتوانید هرکدام را بدلخواه استفاده کنید.
    این دستورات برای درست کردن دایرکتوری بکار میروند برای مثال با اجرای دستور زیر پوشه ای با نام XXX در درایو C
    ساخته خواهد شد.

    MD C:\XXX
    تذکر اینکه اگر بخواهیم یک دایرکتوری در روت درایوی که ویندوز نصب شده درست کنیم ، دستور زیر این کار را انجام
    خواهد داد:

    MD \ABC

    با دستور بالا اگر ویندوز در درایو C نصب شده باشد پوشه ای بنام ABC در روت درایو C درست خواهد شد ولی در
    سیستم بنده که ویندوز در درایو E نصب شده ، با اجرای دستور بالا پوشه مورد نظر در روت درایو E درست خواهد شد.

    اگر بخواهیم که پوشه مورد نظر ما در همین محلی که فایل Batch اجرا میشود ، درست شود از دستور زیر استفاده
    میکنیم:
    MD ABC
    برای مثال اگر فایل Batch با دستور بالا را از دسکتاپ اجرا کنید پوشه ای بنام ABC در دسکتاپ درست خواهد شد.

    دستور RD یا Rmdir
    ============

    این دو تا دستور هم مثل هم هستند و کارشان این است که یک دایرکتوری را حذف (Delet) کنند.
    توجه داشته باشید که این دستورات فقط پوشه ای را میتوانند دیلیت کنند که خالی باشد. یعنی اگر داخل یک پوشه
    فایل ها و یا پوشه های دیگری وجود دارد اول باید محتویات آن را دیلیت کرده و سپس خود پوشه را با دستورات بالا
    دیلیت بکنید.
    با فرض اینکه میخواهید پوشه خالی C:\ABC را دیلیت کنید از دستور زیر استفاده نمائید:

    RD C:\ABC

    اگر در پوشه c:\ABC هم تعدادی فایل و هم تعدادی پوشه دیگر وجود داشته باشد میتوانید با دستور زیر هم فایل ها و
    دایرکتوری های داخل آن و هم خود پوشه را دیلیت کرد:

    RD /s c:\ABC

    با اجرای این دستور ، قبل از این کار یک پیغام داده و خواهد پرسید که " آیا مطمئن هستید؟"و شما باید اول کلید Y
    را در کیبورد فشار داده و سپس کلید Enter را بزنید تا پوشه با محتویاتش حذف شوند.

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

    RD /s /Q c:\ABC

    تا بعد



  6. 5 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  7. #14
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,154
    سپاس
    4,676
    سپاس گذاری شده :12,879 بار در 2,169 پست
    قدرت امتیاز دهی
    38896
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    دستور Move
    =======

    با این دستور میتوانیم یک یا چند فایل را از محلی به محل دیگر منتقل کنیم.
    فرض کنیم شما پوشه ای با نام XXX در روت درایو E دارید که داخلش فایلی بنام music.mp3 قرار دارد و نیز پوشه ای
    بنام zzz در روت درایو C وجود دارد.
    حالا میخواهید با یک دستور فایل music.mp3 از داخل پوشه E:\XXX برداشته شده و داخل پوشه C:\ZZZ گذاشته
    شود ، برای این کار از دستور زیر استفاده میکنیم:

    کد:
    move E:\XXX\music.mp3 C:\ZZZ\
    دستور Rename یا ren
    =============

    دو تا دستور بالا مثل هم بوده و برای تغییر نام دادن فایل و یا پوشه بکار میروند.
    برای مثال دستور زیر نام فایل music.mp3 را که داخل پوشه E:\XXX قرار دارد به abc.mp3 تغییر نام میدهد:

    ren E:\XXX\music.mp3 abc.mp3

    و دستور زیر نام پوشه XXX در روت درایو E را به AAA تغییر نام میدهد:

    ren E:\XXX AAA

    دستور Title
    ======

    موقعیکه ما یک فایل Batch را بطور عادی اجرا می کنیم ، صفحه خط فرمان مثل شکل (1) زیر عبارت
    Windows\system32\cmd.exe... را نشان می دهد . ولی ما میتوانیم با استفاده از دستور Title کاری کنیم که بجای
    این عبارت، هر عبارت دیگر دلخواهمان نشان داده شود.
    برای مثال با اجرای دستور زیر در اول فایل Batch ، عنوان خط فرمان عبارت Magsoud را نشان خواهد داد:

    title Magsoud

    [Only registered and activated users can see links. ]

    دستور shutdown
    ==========

    توسط این دستور بهمراه سویچ های مختلف ،میتوانیم کامپیوتر را خاموش (shutdown) ، یا Restart و یا Log off کنیم.

    اگر همراه سویچ l استفاده شود باعث می گردد که ویندوز Log off کند:
    shutdown -l

    اگر همراه سویچ s استفاده شود باعث می گردد که کامپیوتر خاموش (Shutdown) شود:
    shutdown -s

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

    کد:
    shutdown -r -t 10 -c "eDvArDo eDvArDo eDvArDo eDvArDo eDvArDo"
    که در این صورت پنجره مثل شکل زیر باز شده و تایمر برنامه بعد از 10 ثانیه کامپیوتر را خاموش میکند.
    در ضمن با دستور بالا پیغام "eDvArDo eDvArDo eDvArDo eDvArDo eDvArDo" هم نشان داده خواهد شد.

    [Only registered and activated users can see links. ]

    اگر همراه سویچ r استفاده شود باعث می گردد که کامپیوتر Restart شود:
    shutdown -r

    این دستور موارد استفاده دیگری هم دارد که از حوصله این تاپیک خارج است .

    تا بعد



  8. 6 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  9. #15
    مدیر انجمن کامپیوتر
    همديگر را دوست داشته باشيم و بهم احترام بگذاريم
    تاریخ عضویت
    Mar 2012
    محل سکونت
    زیر سایه شما
    نوشته ها
    794
    سپاس
    3,447
    سپاس گذاری شده :3,451 بار در 790 پست
    حالت من : Ghamgin
    قدرت امتیاز دهی
    13187
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    سلام

    استاد عزيز، دستورات کاربردي و بسيار جالب هستند. اما آموزش شيرين، روان و کامل شما دلنشين‌تر کرده.

    سپاس
    دوستدار هميشگي شما "eDvArDo"

    7n1wj1mlvxoxejezfhye

    دلِ هر ايراني كه براي ايران نمي‌تپد، بهتراست نتپد! (پروفسور حسابي)

    آيا پاسخ سوالي را بدانم بهتر است، يا اينكه ندانسته از دنيا بروم؟! (ابوريحان بيروني)

    پس از سالها جهد و تلاش در كسب علم و معرفت، دانستم كه هيچ ندانستم! (علامه حسن زاده آملي)

  10. 5 کاربر برای این پست سودمند از eDvArDo عزیز سپاس گذاری نموده اند:


  11. #16
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,154
    سپاس
    4,676
    سپاس گذاری شده :12,879 بار در 2,169 پست
    قدرت امتیاز دهی
    38896
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    دستور CALL
    =======

    گاهی لازم میشود که یک فایل Batch در موقع اجرا ، یک فایل Batch دیگر را هم اجرا نماید.برای این کار از دستور CALL
    استفاده میکنیم.
    توجه داشته باشید که شما میتوانید مستقیما" و بدون استفاده از دستور CALL یک فایل Batch را توسط یک فایل Batch
    دیگر استفاده کنید.
    برای مثال فرض میکنیم که شما یک فایل Batch با نام فرضا" Do.cmd دارید که داخل آن دستور زیر را نوشته اید:

    ABC.CMD

    حال اگر فایل Do.cmd را اجرا کنید ، این فایل وقتی به سطری که دستور ABC.CMD وجود دارد رسید ، در صورتیکه
    در کنارش فایلی بنام ABC.CMD وجود داشته باشد ، آن را اجرا خواهد کرد.

    ولی این طریق اجرای یک فایل Batch از داخل یک فایل Batch دیگر ، یک اشکال بزرگ دارد و آن این است که فایل Batch
    اولی پس از اجرای فایل Batch دوم ، بسته خواهد شد.
    مفهومی تر بگویم فرض کنید که داخل فایل اول (Do.cmd) ، تعداد 10 سطر دستورات مختلف نوشته باشید که فرضا"
    در سطر 3 دستور ABC.CMD نوشته شده است.
    حال اگر این فایل را اجرا کنید دستورات سطر اول و سطر دوم اجرا شده و سپس فایل Batch موجود در سطر 3 (یعنی
    ABC.CMD) اجرا شده و همزمان فایل Do.cmd بسته خواهد شد. یعنی دیگر دستورات بعد از سطر 3 و ببعد اجرا
    نخواهند شد.

    این یک اشکال هست که این اشکال با استفاده از دستور CALL برطرف میشود. فرض کنید که بجای دستور بالا دستور
    زیر را در سطر سوم فایل Do.cmd بنویسید:

    CALL ABC.CMD


    حال اگر فایل Do.cmd را اجرا کنید ، بعد از اجرای دستورات سطور 1 و 2 ، فایل ABC.CMD اجرا خواهد شد. با این فرق
    که با اجرای فایل ABC.CMD ، فایل Do.cmd بسته نشده بلکه منتظر تمام شدن کار ABC.CMD خواهد ماند و پس از آن
    دوباره فایل Do.cmd اجرا شده و دستورات سطر 4 و ببعد را اجرا خواهد کرد.

    تذکر این که عمل بالا در صورتی انجام خواهد شد که فایل دوم را خودمان نبندیم و بگذاریم کارش را نرمال انجام دهد.
    مثال دیگر: دستور زیر فایل myfile.bat را که در روت درایو C قرار دارد ، اجرا خواهد کرد:

    call c:\myfile.bat

    دستور Copy
    =======

    توسط این دستور میتوانیم یک یا چند فایل را از محلی به محل دیگر کپی کنیم.
    برای مثال دستور زیر فایل AAA.mp3 را از داخل پوشه E:\ZZZ به داخل پوشه C:\XXX کپی میکند:

    کد:
    Copy E:\ZZZ\AAA.mp3 C:\XXX\
    این دستور دارای سویچ های مختلفی هم هست که اگر لازم بود بعدا" توضیح میدهم.

    دستور GOTO
    ========

    گاهی موقع انجام یک کاری متوجه میشویم که برای این کار وضعیت های مختلفی وجود دارد که هر وضعیت عمل
    مخصوص خودش را لازم دارد.
    برای مثال میخواهیم یک پوشه با نام XXX در روت درایو C درست کرده و فایل هائی داخلش کپی کنیم. در این زمان
    دو حالت پیش می آید:
    1. پوشه ای با نام XXX در روت درایو C وجود ندارد .
    2. از قبل پوشه ای با نام XXX در روت درایو C وجود دارد.

    حالا که میخواهیم پوشه ای با نام XXX در روت درایو C بسازیم و اطلاع نداریم که آیا پوشه ای با همین نام در محل
    مذکور وجود دارد یا نه بنابراین می آئیم و فایل Batch خود را طوری می سازیم که بصورت زیر عمل کند:

    __ اول ببیند که آیا پوشه ای با نام XXX در روت درایو C وجود دارد یا نه
    __ اگر دید وجود دارد دستور X را اجرا کند.
    __ اگر دید وجود ندارد دستور Z را اجرا کند.

    یک راه برای انجام این کار این است که با دستوری به فایل Batch بفهمانیم که بطریق زیر عمل نماید:

    ___ اگر دید پوشه ای با نام XXX در روت درایو C وجود دارد در اینصورت برود و دستوری را که در سطر AAA هست اجرا کند.
    ___ اگر دید پوشه ای با نام XXX در روت درایو C وجود ندارد در اینصورت برود و دستوری را که در سطر ZZZ هست اجرا کند.

    برای اینکه این کار را انجام دهیم از دستور GOTO بهمراه دستور شرطی استفاده می کنیم.
    در مورد دستور شرطی در جلسه بعد صحبت خواهد شد. و در مورد دستور GOTO فعلا" فقط اینقدر میگویم که بعد از این
    دستور باید عبارتی را بنویسیم (مثلا" برای حالت اول مثال بالا می نویسیم GOTO AAA).
    و بعد باید در یک سطر از فایل Batch اول یک علامت : گذاشته و بعد جلویش عبارت AAA را بنویسیم.
    و سپس زیر این سطر دستوراتی که میخواهیم اجرا شوند را می نویسیم.

    وقتی برنامه دستور GOTO را دید (در صورتیکه شرط درست باشد) ، فوری از این قسمت دستورات به سطری که عبارت
    AAA: دارد پریده و دستورات زیر این سطر را اجرا خواهد کرد.
    در بحث بعدی مطلب را بیشتر متوجه خواهید شد.



  12. 6 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  13. #17
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,154
    سپاس
    4,676
    سپاس گذاری شده :12,879 بار در 2,169 پست
    قدرت امتیاز دهی
    38896
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    دستور IF (دستورات شرطی)
    ================

    در مثال های مختلفی که در این تاپیک داشتیم ، دیدیم که دستورات ما دریک فایل Batch هر کدام در یک سطر مجزا
    نوشته میشوند.
    به محض اجرای فایل Batch ، دستورات پشت سر هم اجرا میشوند یعنی اول دستور موجود در سطر 1 و بعد دستور
    سطر 2 و الی آخر تا تمام دستورات بترتیب شوند .

    گاهی لازم میشود که بسته به موجود بودن شرایط بخصوصی کاری را انجام بدهیم.
    برای مثال فرض کنیم که ما در کامپیوترمان، در روت درایو C پوشه ای بنام XXX داریم که مثلا"تمام فایل های خصوصی
    خود را درون آن نگهداری می کنیم.
    و باز فرض کنیم که از کامپیوتر ما کسان دیگری هم استفاده میکنند و فرضا" کاربر eDvArDo وارد کامپیوتر ما شده و
    برای اذیت کردن ما نام پوشه XXX را عوض کرده و یا اصلا" آن را دیلیت کرده است!!
    و دوباره فرض کنیم که ما از اتفاق بالا خبر نداریم و همین الان در دسکتاپ ما فایلی بنام AAA.mp3 وجود دارد که ما
    میخواهیم توسط یک فایل Batch این فایل را به داخل پوشه C:\XXX کپی کنیم.

    حال اگر فایل Batch با دستورات مربوطه را اجرا کنیم ، چون پوشه ای بنام C:\XXX وجود ندارد ، پیغام خطا دریافت
    خواهیم کرد.
    برای جلوگیری از اینگونه اتفاقات، میتوانیم فایل Batch را با استفاده از دستورات شرطی درست کنیم که همواره
    درست کار کند.
    فرضا" برای مثال بالا باید در فایل Batch خود دستوراتی قرار دهیم که بصورت زیر عمل کند:

    1. به روت درایو C نگاه کند و ببیند که آیا پوشه ای بنام XXX وجود دارد یا نه.
    2. اگر دید پوشه XXX وجود دارد ، فایل AAA.mp3 را از دسکتاپ به داخل آن کپی کند.
    3. اگر دید پوشه XXX وجود ندارد ، اول پوشه ای به همین نام در آن جا درست کند و سپس فایل AAA.mp3 را از
    دسکتاپ به داخل آن کپی کند.

    می بینید ما در این مثال باید شرایط مختلفی را با هم مقایسه کرده (در این مثال بودن و نبودن پوشه C:\XXX) و
    سپس در شرایط مختلف کار های مختلفی انجام بدهیم.

    اینکه ما در شرایط متفاوت ، کار های متفاوتی را انجام بدهیم را کار های شرطی نامیده و این اعمال را توسط دستور
    IF انجام میدهیم.
    دستور IF دارای سویچ های متنوعی بوده و میتواند انجام خیلی از کار ها را برای ما آسان کند و من در این بحث بعضی
    از کاربرد های آن را شرح خواهم داد.
    یک فایل Batch با محتوای زیر درست کرده و آن را با نام Do.cmd در دسکتاپ ذخیره کنید:

    کد:
    @ECHO OFF
    IF EXIST C:\XXX\ goto AAA
    MD C:\XXX
    copy AAA.mp3 C:\XXX\
    exit 
    :AAA
    copy AAA.mp3 C:\XXX\
    exit
    حال اگر فایل Batch بالا (Do.cmd) در دسکتاپ شما بوده و فایل AAA.mp3 هم در کنار آن باشد با اجرای این فایل
    اعمال زیر انجام خواهد شد:
    1. اگر پوشه C:\XXX موجود باشد فایل AAA.mp3 به داخل آن کپی خواهد شد. و بعد فایل Batch بسته خواهد شد.
    2. اگر پوشه C:\XXX وجود نداشته باشد اول این پوشه ساخته شده و سپس فایل AAA.mp3 بداخل آن کپی شده و
    بعد فایل Batch بسته خواهد شد.

    شرح دستورات فایل Batch بالا بصورت زیر است:

    __ دستور سطر 1 (ECHO OFF@): باعث مخفی شدن دستورات Batch میشود.
    __ دستور سطر 2 (IF EXIST C:\XXX\ goto AAA): تست میکند که آیا پوشه C:\XXX وجود دارد یا نه.اگر ببیند وجود دارد
    دیگر سطر های 3 و 4و 5 اجرا نشده و دستورات زیر سطر 6 (یعنی AAA: ) اجرا میشوند.
    __ اگر پس از اجرای دستور سطر 2 ، پوشه پوشه C:\XXX وجود نداشته باشد ، برنامه دیگر به سطر 6 نمی پرد بلکه میرود
    تا دستور سطر بعدی یعنی سطر 3 را انجام دهد.
    __ دستور سطر 3 پوشه ای بنام XXX در درایو C می سازد.
    __ دستور سطر 4 فایل AAA.mp3 را به داخل پوشه C:\XXX کپی میکند.
    __ دستور سطر 5 فایل Batch را می بندد.
    __ دستورات زیر سطر 6 فقط در صورتی اجرا خواهند شد که در سطر دوم ببینیم که پوشه C:\XXX وجود دارد.

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

    کد:
    @ECHO OFF
    IF NOT EXIST C:\XXX\ goto AAA
    copy AAA.mp3 C:\XXX\
    exit 
    :AAA
    MD C:\XXX
    copy AAA.mp3 C:\XXX\
    exit
    این نوع درست برعکس فایل قبلی عمل میکند.
    فایل قبلی در اول کار بودن پوشه ای بنام XXX را تست کرده و براساس آن کاری میکرد
    ولی در نمونه جدید در اول کار نبودن پوشه ای بنام XXX تست شده و بر اساس نتیجه اقدامی صورت میگیرد.

    در این جلسه یک نوع موارد استفاده دستور IF را دیدیم. اگر جائی نامفهوم و گنگ است بفرمائید تا توضیح داده و بعد
    مثال های دیگر و انواع دیگر استفاده از IF را بحث خواهیم کرد.



  14. 6 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  15. #18
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,154
    سپاس
    4,676
    سپاس گذاری شده :12,879 بار در 2,169 پست
    قدرت امتیاز دهی
    38896
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    ادامه دستورات شرطی
    ============

    در جلسه قبلی با یک نوع از دستورات مربوط به IF توانستیم بودن یا نبودن یک پوشه (Directory) را بفهمیم.
    مطابق مثال زیر ، درست بهمان طریق میتوانیم بودن و نبودن یک فایل را متوجه شویم:

    فایل Batch زیر را اجرا کنید.با اجرای این فایل اگر فایلی بنام " pagefile.sys" در روت درایو C موجود باشد یک پیغام داده
    شده و اگر موجود نباشد ، پیغام دیگری نمایش داده خواهد شد:

    کد:
    @ECHO OFF
    IF EXIST C:\pagefile.sys goto AAAA
    IF NOT EXIST C:\pagefile.sys goto WWWW
    :WWWW
    echo.
    echo.
    echo   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    echo.
    echo      Can not find "pagefile.sys: in root of drive C
    echo.
    echo   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    echo.
    echo.
    pause>nul
    EXIT
    :AAAA
    echo.
    echo.
    echo   =======================================================
    echo.
    echo     Yes there is file "pagefile.sys" in root of drive C
    echo.
    echo   =======================================================
    echo.
    echo.
    pause>nul
    همانطوریکه در مثال بالا متوجه شدید ، من در این مثال شرطی بهمراه دستور IF براساس نیازم از دستورات دیگری هم
    (ECHO OFF@ ، goto ، echo ، pause و EXIT )استفاده کرده ام که در موردشان در جلسات قبلی بحث کرده ایم.
    در کل بسته به نیازمان میتوانیم از دستورات مختلف استفاده نمائیم.

    توجه کنید که میتوانیم در یک زمان بودن یا نبودن بیش از یک فایل را هم جستجو کنیم . فرضا" دستورات زیر بودن و نبودن دو
    تا فایل را تست خواهند کرد:

    IF EXIST C:\pagefile.sys IF EXIST C:\config.sys goto AAAA
    IF NOT EXIST C:\pagefile.sys IF NOT EXIST C:\config.sys goto WWWW


    مطالب دیگری در مورد دستور IF وجود دارد ولی نمیتوانم الان در مورد آن ها صحبت کنم چون توضیح در مورد آن ها مستلزم
    دانستن نکاتی هست که فعلا" نمیشود درباره آن ها صحبت کرد چون باعث سردرگمی کاربر خواهد شد.

    اگر عمری بود ، اگر این تاپیک به اندازه کافی مشتری داشت ، و اگر حوصله من پیر مرد اجازه دهد ، بعدا" بمرور در جای
    خود ، در مورد آن نکات نیز بحث خواهیم کرد.

    دستور Attrib
    =======

    هر فایلی و یا هر پوشه ای دارای خواص مربوط بخودش هست.
    برای مثال یک فایل میتواند خواص مختلفی داشته باشد مثلا" مخفی باشد (خاصیت Hidden) و یا فقط قابل خواندن
    باشد (خاصیت Read-only) و یا ممکن است یک فایل سیستمی باشد (خاصیت System File) و غیره..
    یک فایل ممکن است یکی یا چند تا خاصیت مختلف داشته باشد ، برای مثال فایل های سیستمی معمولا" دارای
    هر سه خاصیت گفته شده در بالا هستند یعنی هم سیستمی هستند هم مخفی و هم Read-only .

    با استفاده از دستور Attrib میتوانیم خواص فایل ها و پوشه ها را تغییر دهیم.

    شاید بگوئید که این کار به چه دردمان میخورد؟ ولی اینگونه نیست . برای مثال اگر فرضا" ویروسی در فلاشتان وارد
    شده باشد مطمئنا" اولین کاری که خواهد کرد این است که خودش را مخفی کند (خاصیت Hidden) و بعد حتما"
    خودش را Read-only و یا حتی فایل سیستمی خواهد کرد.
    معلوم است که در این زمان شما بصورت عادی نخواهید توانست آن ها را دیده و یا دیلیت کنید مگر اینکه اول با دستورات
    Attrib آشنا باشید.
    دستور Attrib دارای سویچ های مختلفی هست :

    اگر با سویچ h+ استفاده شود فایل را مخفی ( Hidden ) میکند.فرضا" دستور زیر فایل xxx.txt در روت درایو E را مخفی
    ( Hidden ) میکند :

    Attrib +h E:\xxx.txt


    اگر با سویچ h- استفاده شود خاصیت مخفی بودن را برداشته و فایل را نمایان میکند.مثل:
    Attrib -h E:\xxx.txt

    اگر با سویچ s+ استفاده شود فایل را سیستمی کرده و اگر با سویچ s- استفاده شود خاصیت سیستمی بودن را برداشته
    و فایل را عادی میکند.

    اگر با سویچ r+ استفاده شود فایل را Read-only کرده و اگر با سویچ r- استفاده شود خاصیت Read-only را بر می دارد.

    با این دستور میتوان همزمان بیش از یک سویچ استفاده کرد برای مثال دستور زیر فایل xxx.txt در روت درایو E را هم
    Hidden ، هم Read-only و هم سیستمی میکند:

    Attrib +s +r +h E:\xxx.txt

    و یا اگر فایل بالا هم Hidden ، هم Read-only و هم سیستمی باشد دستور زیر هر سه خاصیت گفته شده را حذف
    کرده و فایل عادی می شود:

    Attrib -s -r -h E:\xxx.txt

    میتوانیم همزمان خاصیت تعداد زیادی فایل را عوض کنیم. برای مثال با دستور زیر تمام فایل های موجود در پوشه
    C:\xxx مخفی خواهند شد:

    کد:
    Attrib +h C:\xxx\*.*
    فعلا" بحث دستور Attrib را هم در همین جا تمام کرده و دیگر موارد مربوطه را در صورت لزوم در جای خود توضیح خواهم داد.



  16. 5 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  17. #19
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,154
    سپاس
    4,676
    سپاس گذاری شده :12,879 بار در 2,169 پست
    قدرت امتیاز دهی
    38896
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    دستور Xcopy
    =======

    با این دستور که در حقیقت نوع پیشرفته دستور Copy است ، می شود تمام فایل ها و دایرکتوری های موجود در یک
    محل را به محلی دیگر کپی کرد.
    برای مثال میشود تمام محتوای درایو C (تمام فایل ها و پوشه ها ) را به درایو E کپی کرد

    موقعیکه ما بهر علتی (مثلا" به منظور Backup) ، میخواهیم تمام فایل ها و دایرکتوری ها را از محلی به محل دیگر کپی
    کنیم ، وضعیت های مختلفی ممکن است پیش بیاید.این دستور برای هرگونه وضعیت احتمالی دارای سویچ های متفاوتی
    است که باید بنا به نیازمان استفاده کنیم. شرح تعدادی از این سویچ ها بصورت زیر است:

    __ اگر بهمراه سویچ S/ بکار رود یعنی میخواهیم که تمام دایرکتوری های موجود در محل گفته شده و حتی دایرکتوری
    های داخل دایرکتوری ها (Directories and Subdirectories) ، بغیر از آن هائیکه خالی هستند کپی شوند.

    __ بهمراه سویچ H/ تمام فابل های مخفی و سیستمی را هم کپی خواهد کرد.
    __ همراه سویچ R/ فایل های read-only را هم کپی خواهد کرد.
    __ در زمان هائی لازم است که بهر علتی ، پیامی داده شود و از ما بخواهد که ادامه کار را تائید کنیم که اگر دستور
    را همراه سویچ Y/ استفاده کنیم، این پیغام را نشان نخواهد داد.

    یک مثال: فرضا" پوشه ای با نام AAA در روت درایو C قرار دارد که داخلش انواع فایل ها و پوشه های مختلف وجود دارند
    و میخواهید که محتویات این پوشه به داخل پوشه ای بنام BBB در روت درایو E کپی شوند.
    با دستور زیر در روت درایو E پوشه ای بنام BBB درست شده و تمام محتویات پوشه C:\AAA به داخل آن کپی خواهد شد.

    XCOPY C:\AAA\*.* E:\BBB\ /S/H/C/F/R/Y

    حتما" میدانید چرا سویچ های بالا را استفاده کرده ایم.

    حالا دستور بالا را بصورت زیر اجرا کنید:

    XCOPY C:\AAA\*.* E:\BBB\ /S/H/C/R/Y/q

    چه فرقی داشت و چرا ؟

    توجه داشته باشید که دستور Xcopy فایل هائی که در حین عمل کپی باز باشند را کپی نخواهد کرد.

    دستور Xcopy دارای سویچ های دیگری هم هست ولی همین مقدار برای بحث ما کافی است.



  18. 5 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  19. #20
    کاربر فعال
    یاد بگیریم وبه دیگران هم یاد بدیم
    تاریخ عضویت
    Nov 2013
    محل سکونت
    تبریز
    نوشته ها
    525
    سپاس
    1,446
    سپاس گذاری شده :1,782 بار در 529 پست
    حالت من : Konjkav
    قدرت امتیاز دهی
    4409
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    استاد یه سوال داشتم
    ما در داخل سی دی ویندوز sources\$oem$\$$\Setup\Scripts یه فایل SetupComplete.cmd داریم که با اجرا شدن اون یه تعداد نرم افزار نصب میشوند ودر ادرس sources\$oem$\$$\Setup\xxx یه فایلی به نام install.cmd داریم ومیخواهیم که در سطر سوم فایل SetupComplete.cmd یه فرمانی برای اجرای فایل install.cmd هم بنویسیم با توجه به ادرس فایل install.cmd فرمان اجرای این فایل در سطر سوم SetupComplete.cmd چطوری خواهد بود البته در اول همه دستورات موجود در فایل SetupComplete.cmd یه چیزی هم هست که با این نوشته شروع میشوند

    DPO~%

  20. 4 کاربر برای این پست سودمند از سهند عزیز سپاس گذاری نموده اند:


صفحه 2 از 14 نخستنخست 12345612 ... آخرینآخرین

علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

http://www.worldup.ir/