cmd

آموزش کامل cmd (زبان داس).

این یک آموزش زبان برنامه نویسی داس cmd می باشد.


    DELTREE

    شکل کلی دستور:
    کد:
    DELTREE [/Y] [d:]path [d:]path[...]
    عمل:پاک کردن یک یا چند دایرکتوری همراه با تمام فایل ها و ساب دایرکتوری های داخلآن.

    با این دستور می تونید یک دایرکتوری رو به همراه تمام ساب دایرکتوری وفایل های داخلش پاک کنید ( یادم رفته بود بگم که دستورDEL فقط فایل ها روپاک می کنه نه دایرکتوری ها رو :arrow: ) البته برای پاک کردن دایرکتوری دستور دیگهای هم هست که بعدا می گم. دستورDELTREEدر ورژن های 6 به بالا هستش مثلامحیط خط فرمان ویندوز خودم اونو نمی شناسه پس ممکنه برای خیلی هاتون خطا بگیره دراینصورت برای پاک کردن دایرکتوری از دستورRDاستفاده می کنیم.

    حالااصلا چرا با وجود دستور RD ، دستور DELTREE رو ایجاد کردن؟ چون اگه همین حالا دستور RD رو برای یک دایرکتوری که حاوی فایل یا ساب دایرکتوری هستش اجرا کنید می بینید کهبرنامه خطا می گیره کهThe directory is not empty . یعنی با دستور RD فقطمی تونید دایرکتوری های خالی رو پاک کنید اما با دستور DELTREE دیگه این مشکل روندارید.

    در این دستور می تونید همزمان چند دایرکتوری رو با هم پاک کنید. ازکاراکترهای * و ؟ هم می تونید استفاده کنید اما مثل همیشه اخطار می کنم مواظب باشیدبا استفاده از اینا نزنید سیستمتون رو داغون کنید! یادتون باشه اگه دایرکتوری که میخواید پاک کنید حاوی فایل های hidden ، system ، read-only و ... باشه اونها هم پاکمی شن پس دقت کنید ( این هزار بار!!)

    مثال:

    برای پاک کردندایرکتوری LETTERSکه حاوی کلی فایل و دایرکتوری و چی و چی و چیه ! و دردرایوC قرار داره می نویسیم:
    کد:
    DELTREE c:\letters

    شکل کلی دستور:
    کد:
    ATTRIB [d:][path]filename [/S]
    ATTRIB [+ R|-R] [+A|-A] [+ H|-H] [+ S|-S] [d:][path]filename [/S]
    عمل:مشخص کردن صفات یک فایل یا دایرکتوری از قبیل read-only, archive, system و hidden

    خب با این دستور می تونید صفات هر فایل یا فولدری رو که می خوایدمشخص کنید. مثلا اینکه فایل مخفی باشه یا فقط خواندنی باشه با هرچیز دیگه. مثلا بادادن صفت read-only به یک فایل، اون فایل قابل دسترسی و باز کردن هست اما قابلاصلاح و تغییر دادن یا پاک کردن نیست.

    اگه فایلی رو با +R تبدیل به read-only کردید و بعد خواستید اون رو پاک کنید داس پیغام ACCESS DENIED می ده. قبلاز اینکه بخواید فایل رو پاک کنید اول باید با -R اون رو از حالت فقط خواندنی خارجکنید.

    از کاراکترهای * و ؟ هم می تونید استفاده کنید اما نمی تونید باتغییر دادن صفات یک دایرکتوری اون تغییرات رو روی تمام فایلها و ساب دایرکتوری هایدرون اون اعمال کنید.
    کد:
    +R
    فایل Read-only می شه یعنی می تونید اون رو بخونید اما نمی تونید تغییرش بدید یا پاکشکنید
    کد:
    -R
    عکسبالایی یعنی از حالت Read-only در میاد
    کد:
    +A
    آرشیوکردن فایل
    کد:
    -A
    عکسحالت بالایی
    کد:
    +H
    مخفیکردن فایل
    کد:
    -H
    عکسحالت بالایی!
    کد:
    +S
    سیستمیکردن فایل ( اگه در این حالت سعی کنید فایل رو مخفی کنید یا فقط خواندنی کنید اخطارمی ده)
    کد:
    -S
    عکسحالت قبل
    کد:
    /S
    بااستفاده از این قسمت می تونید صفاتی رو که می خواید به همه ساب دایرکتوری های اونمسیر مشخص شده بدید

    مثال:

    برای فقط خواندنی کردن فایلSALES87.TXT تایپ می کنیم:
    کد:
    attrib +r a:sales87.txt
    برای archive کردنLETTER3.DOCکه در دایرکتوریLETTERSدر درایوB قرار داره می نویسیم:
    کد:
    attrib +a b:\letters\letter3.doc
    حالاچرا فایلی رو آرشیو می کنیم؟ برای اینکه دستوراتی مثل BACKUP ، RESTORE و XCOPY ازفایل های آرشیو استفاده می کنن همونطور که داس از فایل های سیستمی استفاده میکنه.

    برای فهمیدن صفات فایل ها ی موجود در یک دایرکتوری می نویسیم:
    کد:
    attrib *.*
    مثلافرض کنید وارد درایو B و بعد وارد دایرکتوریLETTERSشدید و حالا دراینجا تایپ کردید attrib *.* خب چیزی که ظاهر می شه مثلا اینه:
    کد:
    A B:\LETTERS\LETTER3.TXT
    A R B:\LETTERS\SALES87.DOC
    B:\LETTERS\SALES-N.TXT
    خب این یعنی اینکه در دایرکتوریLETTERSسه تا فایله که LETTER3.TXT فایل آرشیوه و SALES87.DOC هم آرشیوه وهم فقط خواندنی و سومی هم که پرته هیچ صفتی نداره!


        XCOPY

        شکل کلی دستور:
        کد:
        XCOPY [d:][path]filename [d:][path][filename] [/A][/Ddate)] [/E][/M][/P]
        [/S][/V][/W][Y|-Y]
        عمل:کپی کردن دایرکتوری ها، ساب دایرکتوریها و فایل ها

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

        دستورXCOPYبرای کپی کردن تمام یه دیسک شامل تمام داده ها و فایل ها و دایرکتوریها بکار می ره. این دستور بجای دستورDISKCOPYدر زمانی استفاده می شه کهبخواید اطلاعات رو از یه دیسکی با یه فرمت به دیسک دیگه ای با فرمت متفاوت کپی کنید ( مثلا کپی کردن از دیسک 5 1/4 inch به دیسک 3 1/2 inch ) .

        دستورXCOPYاز دستورCOPYقدرتمندتره بخصوص در زمانی که می خواید از درایوبک آپ بگیرید. استفاده معمول اون هم در بک آپ گرفتن از فایلهایی هستش که بعد ازآخرین بک آپ گیری دچار تغییر شدن یا اضافه شدن.

        کد ارورهای احتمالی:
        کد:
        0 - Copying was completed without error
        1 - No files found
        2 - User terminated the copy
        4 - Initialization error (not enough memory, invalid syntax, path not found)
        5 - Copy terminated due to INT 24 error reading or writing disk
        کد:
        /A
        تنهافایلهایی رو کپی می کنه که archive باشن و فایلهای کپی شده هم این صفت رو خواهندداشت
        کد:
        /Ddate)
        تنهافایل هایی رو کپی می کنه که پس از اون تاریخی که مشخص می کنید دچار تغییر شدهباشن
        کد:
        /S
        تمامفایل ها و ساب دایرکتوری های مسیر مشخص شده رو کپی می کنه
        کد:
        /E
        سابدایرکتوری ها رو کپی می کنه حتی اگه خالی باشن. درصورت استفاده از این قسمت باید /S رو هم همراهش بنویسید
        کد:
        /M
        اینسویچ هم مثل /A عمل می کنه با این تفاوت که در /A هم فایلهای مبدا و هم مقصد دارایصفت archive می شدند اما دراینجا فایلهای مقصد ( کپی شده ها) آرشیو نیستند و همچنیناین سویچ فقط فایل های آرشیو رو کپی میکنه و اگه فایلی آرشیو نباشه کپی نمیشه
        کد:
        /P
        ازشما می پرسه مطمئنید می خواید فایل کپی بشه یا نه. هرچند اگه این سویچ رو با سویچ /E بکار ببرید اگه داس به یه دایرکتوری خالی برسه اون رو کپی می کنه و ازتون اجازههم نمی گیره!
        کد:
        /V
        برنامهمطمئن می شه که فایل های مبدا و مقصد مثل هم باشن و در حین کپی کردن اختلافی بوجودنیومده باشه
        کد:
        /W
        دستورکپی کردن زمانی شروع می شه که شما اجازه رو صادر کنید! اگه از این سویچ استفادهنکنید به محض نوشتن دستور و زدن اینتر کار کپی شروع می شه
        کد:
        /Y
        جابجاکردن فایلهای مقصد با فایلهای هم نامی که ممکنه در محل مقصد وجود داشته باشن بدوناجازه گرفتن از شما
        کد:
        /-Y
        عکسحالت بالا. یعنی درصورت برخورد با فایل هم نام اول از شما می پرسه که replace بکنهیا نه

        مثال:

        برای کپی کردن تمام فایل ها و دایرکتوری ها ( بجزدایرکتوری های خالی) از درایو Cبه درایوA تایپ می کنیم:
        کد:
        xcopy c: a: /s

    RD

    شکل کلی دستور:
    کد:
    RMDIR [d:]path
    عمل:پاک کردن دایرکتوری

    با این دستور فقط می تونید یه دایرکتوری خالی رو پاککنید.برای اینکه بفهمید یه دایرکتوری خالیه یا نه می تونید از دستور DIR استفادهکنید. فرض کنید می خوایم ببینیم آیا دایرکتوری NEWFILES خالیه یا نه پس تایپمی کنیم:
    کد:
    dir c:\newfiles
    خطوطیکه برای یه دایرکتوری خالی ظاهر می شن اینهاست:
    کد:
    Volume in drive C is DOS1
    Directory of C:\NEWFILES

    . DIR 4-09-87 8:36p
    .. DIR 4-09-87 8:36p

    2 File(s) 17671520 bytes free

    TYPE

    شکل کلی دستور:
    کد:
    TYPE [d:][path]filename
    عمل:نشان دادن محتویات فایل

    توضیح نداره دیگه! محتویات فایل رو باهاش میبینید!

    مثال:

    برای دیدن محتویات فایل LETTER3.TXT کهدر درایوBقرار داره تایپ می کنیم:
    کد:
    type b:letter3.txt

    FC

    شکل کلی دستور:
    برایمقایسه ASCII:
    کد:
    FC [d:][path]filename [d:][path]filename [/A][/L][/Lb n] [/N]
    وبرای مقایسه های باینری:
    کد:
    FC [d:][path]filename [d:][path]filename [/b]
    عمل:مقایسه دو فایل و نمایش تفاوتها

    این دستور تفاوت های دو فایل مشخص شده روگزارش می کنه. برای مقایسه دو فایل بطور کامل احتیاج به فضای خالی کافی در RAM هستکه اگه این فضای خالی به اندازه کافی نباشه داس تمام خطوط دو فایل رو مقایسه نمیکنه بلکه تا جایی که فضا اجازه بده پیش می ره و در نتیجه، نتیجه بدست آمده متفاوتخواهد بود پس دقت کنید.
    کد:
    /A
    بجاینشان دادن تمام خطوط متفاوت دو فایل، فقط اولین و آخرین خطوط متفاوت نمایش داده میشوند
    کد:
    /B
    مقایسهباینری رو انجام می ده که فایل ها بایت به بایت مقایسه می شن و از اولین آدرس نمایشبایت های متفاوت آغاز می شه. بطور پیش فرض برای مقایسه فایل هایی با پسوند COM, .EXE, .SYS, .BIN, .OBJ و LIB داس از مقایسه باینری استفاده می کنه مگر اینکه ازسویچ /L استفاده کنید تا مقایسه اسکی انجام بشه
    کد:
    /L
    مقایسه ASCII دو فایل.داس بطور پیش فرض برای تمام فایل هایی که پسوندیغیر ازCOM, .EXE, .SYS, .BIN, .OBJ و LIB دارند مقایسه اسکی انجام می ده مگر اینکه از سویچ /B استفاده کنید.
    کد:
    /Lb n
    بااین سویچ شما تعداد خطوطی رو که با هم مقایسه می شن مشخص می کنید. بطور پیش فرضفضای لازم برای مقایسه 100 خط وجود داره و شما با این سویچ این پیش فرض رو تعییر میدید و بنابراین اگه تعداد خطوط متفاوت از میزان پیش فرض بیشتر باشه پیغام خطادریافت می کنید.
    کد:
    /N
    شمارهخطوط متفاوت هم نوشته می شن

    مثال:

    برای مقایسه ASCII فایل های LETTER.TXTوMEMO2.TXT که در درایوBقرار دارنتایپ می کنیم:
    کد:
    fc /l letter.txt b:memo2.txt
    برایمقایسه binaryدو فایلCHECK.EXEوCHECK2.EXEمینویسیم:
    کد:
    fc /b check.exe check2.exe

        UNDELETE

        شکل کلی دستور:

        UNDELETE [d:][path][filename]
        UNDELETE[/list|/all]]

        عمل:بازگرداندنفایل هایی که با دستور DELETE از بین رفته اند

        این کار قبلا توسط دستورRecoverانجام می شد اما دستور recover دیگه قدیمی شده و در ورژن های 5 بهبالا کامل حذف شده. دستور UNDELETE حالا کاری مشابه انجام می ده هرچند قدرت زیادینداره و اگه فایلی رو پاک کنید و بعد روی درایو یه فایل جدید ایجاد کنید یا هرگونهتغییری روی درایو اعمال کنید این دستور دیگه نمی تونه اون فایل پاک شده روبرگردونه. پس اگه تصادفا فایلی رو پاک کردید که لازمش داشتید سریعا تمام برنامههایی رو که دارید اجرا می کنید متوقف کنید و از این دستور استفاده کنید.
        کد:
        /all
        تمامفایل های پاک شده قابل بازیابی رو برمی گردونه
        کد:
        /list
        لیستتمام فایل های پاک شده قابل بازیابی رو نشون می ده ( قبل از بازیابیکردن)

        مثال:

        برای undelete کردن تمام فایل های قابل بازیابیاز دایرکتوریLETTERSتایپ می کنیم:
        کد:
        undelete \letters\*.* /all

   منبع:کلاله خبر