دستور Robocopy چیست و چگونه کار میکند؟
یکی از دستورات فوق پیشرفته در خط فرمان ویندوز دستور RoboCopy است.
دستور RoboCopy به شما اجازه میدهد هر گونه که نیاز داشتید فایلهای تان را از یک مسیر
به مسیر دیگر کپی (Copy) و یا منتقل (Move) کنید.
ویژگی های دستور Robocopy
از ویژگیهای بارز دستور RoboCopy میتوان به انتقال فایلها توسط ویژگیهای (File Attributes)
آنها اشاره نمود.
مثلا میتوان فقط فایلهای که ویژگی Archive روی آنها تنظیم شده را کپی نمود و یا
فایلهای که ویژگیهای مشخص شده را داشتند
را کپی و یا منتقل کرد و حتی میتوان مشخص کرد که فایلهای که یک ویژگی خاص را داشتند
دیگر کپی نشوند.
پیشنهاد:
اگر شما هم از علاقه مندان به دنیای خط فرمان ویندوز میباشد به شما پیشنهاد
میکنم حتما به فهرست دستورات cmd یا همان خط فرمان ویندوز سر بزنید.
چگونه میتوانیم از دستور RoboCopy استفاده کنیم؟
استفاده از دستور RoboCopy به سادگی دستور Copy و XCopy میباشد
و به طور کلی هیچ فرقی بین نحوه استفاده از این دستورات باهم وجود ندارد.
تنها تفاوت میان آنها، گزینه ها و ویژگیهای میباشد که این دستورات ارائه میکنند.
تفاوت دستور Copy و Xcopy
دستور XCopy از دستور Copy پیشرفته تر است
و گزینه های بیشتری دارد و دستور RoboCopy از دستور XCopy پیشرفته تر
و به نسبت گزینه های بیشتر و پیشرفته تری دارد.
در مثال زیر نحوه استفاده از دستور RoboCopy مشخص شده و شما میتوانید آنرا مشاهده کنید:
RoboCopy C:\MySources X:MyDestination
در مثال بالا ابتدا دستور RoboCopy مشخص شده سپس مسیر فایلهای که قرار است کپی شوند
(C:\MySourcesFiles) و پس از آن مقصدی که فایلها قرار است
به آنجا منتقل شوند مشخص شده است.
با استفاده از دستور RoboCopy میتوان همانند دستورات Copy و X Copy فایلها
را با پسوند آنها مشخص نمود. مثلا فقط فایلهای اجرایی را کپی کنیم یا مشخص کنیم
فقط عکسهای که پسوند آنها .Jpg میباشند کپی شوند. برای مثال:
RoboCopy C:\Pictures\ X:\Pictures-Backup *.jpg
در مثال بالا مشخص شده کلیه فایلهای که پسوند .jpg دارند از پوشه Pictures
به درایو X پوشه Pictures-Backup منتقل شوند.
پارامتر ها و گزینه های (Options) دستور RoboCopy
همانطور که گفتم دستور RoboCopy بیش از حد پارامتر و یا Option دارد و به ما اجازه میدهد
به هر نحوه که نیاز داشتیم فایلهای مان را کپی و یا منتقل کنیم.
پارامتر | توضیحات |
/S | پارامتر S اجازه میدهد کلیه پوشه ها و پوشه های زیر مجموع و فایلهای زیر مجموع آنها هم کپی شوند. |
/E | پارامتر /E همانند پارامتر /S میباشد با این تفاوت که پوشه های خالی هم کپی خواهند شد. |
/LEV:N | با پارامتر /lev میتوانید سطح کپی شدن دایرکتوری ها را مشخص کنید. مثلا برای دستور مشخص کنید تا ۳ سطح بعد فایلها و دایرکتوری ها را کپی کند. |
/Z | کپی کردن فایلها در حالت قابل بازگشت (Restartable) مخصوص استفاده در شبکه |
/B | کپی گرفتن از فایلها در حالت Backup |
/ZB | کپی گرفتن از فایلها در حالت قابل بازگشت و در صورت منع دسترسی در حالت Backup |
/EFSRAW | کپی گرفتن از فایلهای کد گذاری شده در حالت RAW Mode |
/Copy: Flags | کپی گرفتن از خواص فایل، میتوانید مقدارهای زیر را مشخص کنید: D برای مشخص کردن داده (Data)A برای مشخص کردن ویژگیهای فایل (Attributes)T برای مشخص نمودن Time StampsS برای مشخص کردن فهرست سطح دسترسی به فایل (ACL)O اطلاعات مربوط به مالکیت (Ownership)U اطلاعات مربوط به حسابرسی (Auditing)به صورت پیش فرض فقط DAT را کپی میکند. |
/DCopy: Flags | مشخص کردن خواصی که باید برای دایرکتوری ها کپی شود. به صورت پیشفرض فقط Data و Attribute ها کپی میشوند اما میتوانید Time Stamps را هم مشخص کنید. |
/Sec | کپی گرفتن از فایلها با اطلاعات مربوط به Access Control List مثل Copy:DATS میباشد. |
/CopyAll | کپی گرفتن از همه اطلاعات ممکن مثل Copy:DATSOU میباشد. |
/NoCopy | هیچ اطلاعاتی از فایلها کپی نخواهد شد با پارامتر /Purge کاربردی خواهد بود. |
/SecFix | رفع اشکال امنیتی برای همه فایلها، حتی فایلهای که نادیده گرفته شده باشند. |
/TimFix | رفع اشکال زمان برای همه فایلها، حتی فایلهای که نادیده گرفته شده باشند. |
/Purge | حذف فایلها و دایرکتوری های که در مبدا دیگر وجود ندارند. |
/MIR | کپی گرفتن از ساختار دایرکتوری ها به صورت درختی همانند پارامترهای /E به همراه /Purge |
/Mov | انتقال فایلها و حذف آنها از مبدا بعد از انجام فرایند انتقال (Move) |
/Move | انتقال فایلها و دایرکتوری ها و حذف آنها از مبدا پس از انجام فرایند انتقال (Move) |
/A+: | اضافه نمودن ویژگی های مشخص شده به فایلهای کپی شده (File Attribute) بعد از کپی |
/A-: | حذف نمودن ویژگی های مشخص شده از فایلهای مبدا (File Attribute) بعد از کپی |
/Create | ایجاد ساختار درختی از دایرکتوری ها و فایلها با حجم صفر بایت |
/FAT | ساخت فایلهای مقصد با استفاده از نام گذاری با طول کاراکتر های ۸٫۳ |
/۲۵۶ | پشتیبانی نکردن از مسیر های بسیار بلند (بیشتر از ۲۵۶ کاراکتر) |
/Mon:N | بررسی نمودن مبدا و اجرای دوباره دستور هنگامیکه بیشتر از N مقدار تغییرات تشخیص داده شود. |
/Mot:M | بررسی مبدا و اجرای دوباره بعد از M دقیقه اگر تغییراتی تشخیص داده شود. |
/MT:N | ایجاد چندین رشته کپی، مقدار N میتواند از ۱ تا ۱۲۸ باشد و به صورت پیش فرض عدد آن ۸ است. به طور کلی نمیتوان از پارامتر MT با پارامترهای /IPG و یا پارامتر /EFSRAW استفاده نمود. بهتر است خروجی دستور را با پارامتر /Log منتقل کنید تا اجرای بهتری داشته باشد. |
/RH: HH MM | مشخص کردن زمان اجرا، زمانیکه کپی های جدید شروع میشوند. |
/PF | بررسی زمان اجرا بر اساس هر فایل |
/IPG:N | مشخص نمودن Inter-Packet Gap برای آزاد سازی خطوط کند شده |
/SL | دنبال نمودن Symbolic Link ها و کپی گرفتن از هدف آنها |
پارامتر ها و یا گزینه های انتخاب فایل
پارامتر | توضیحات |
/A | فقط فایلهای که ویژگی Archive روی آنها تنظیم شده بود کپی شوند. |
/M | فقط فایلهای که ویژگی Archive روی آنها تنظیم شده بود کپی شوند و بعد از آن این ویژگی از آنها برداشته شود. |
/IA: | فقط فایلهای کپی شوند که ویژگیهای مشخص شده را داشته باشند. |
/XA: | فایلهای که ویژگیهای مشخص شده را داشتند کپی نشوند. |
/XF | مشخص کردن فایلها و مسیر های که نباید کپی شوند. میتوانید از کاراکتر ستاره هم برای مشخص کردن گروهی فایلها استفاده کنید. |
/XD | مشخص کردن نا و مسیر دایرکتوری های که نباید کپی شوند. |
/XC | مشخص کردن فایلهای که تغییرات داشته اند و نباید کپی شوند. |
/XN | مشخص کردن فایلهای جدیدی که نباید کپی شوند. |
/XO | مشخص کردن فایلهای قدیمی که نباید کپی شوند. |
/XX | مشخص نمودن فایلها و دایرکتوری های اضافی که نباید کپی شوند. |
/XL | مشخص کردن فایلها و دایرکتوری های تنها که نباید کپی شوند. |
/IS | شامل فایلهای یکسان |
/IT | شامل فایلهای اصلاح شده |
/MAX:N | مشخص کردن حداکثر حجم فایلهای که باید کپی شوند. |
/MIN:N | مشخص کردن حداقل حجم فایلهای که باید کپی شوند. |
/MAXAGE:N | مشخص کردن حداکثر طول عمر فایلهای که باید کپی شوند. (N میتواند تاریخ یا تعداد روز باشد) |
/MINAGE:N | مشخص کردن حداقل طول عمر فایلهای که باید کپی شوند. (N میتواند تاریخ یا تعداد روز باشد) |
/MAXLAD:N | مشخص کردن حداکثر زمانی که آخرین بار به یک فایل دسترسی داشته اید. (کپی نکردن فایلهای که بیشتر از N مقدار به آنها دسترسی نداشته اید) |
/MINLAD:N | مشخص کردن حداقل زمانی که آخرین بار به یک فایل دسترسی داشته اید. (کپی نکردن فایلهای کمتر از N مقدار به آنها دسترسی داشته اید) |
/XJ | کپی نکردن مقصد Junction به صورت پیش فرض کپی میشوند. |
/FFT | در نظر گرفتن زمانهای فایل FAT (با دو ثانیه دقت) |
/DST | جبران کردن برای ۱ ساعت تفاوت زمان DST |
/XJD | کپی نکردن مقصد Junction های که به دایرکتوری اشاره میکنند. |
/XJF | کپی نکردن مقصد Junction های که با فایلها اشاره میکنند. |
پارامتر ها و گزینه های تلاش مجدد
پارامتر | توضیحات |
/R:N | تعداد تلاشهای که برای کپی کردن هنگام برخورد با خطا باید انجام شوند. (عدد پیش فرض N یک میلیون است) |
/W:N | مشخص کردن زمان توقف بین هر تلاش (بر ثانیه)، مقدار پیش فرض N هر ۳۰ ثانیه میباشد. |
/REG | مقدار های مشخص شده در جلوی پارامترهای /R و /W به عنوان مقادیر پیش فرض در Registry ویندوز ذخیره شود. |
/TBD | مشخص میکند تا سیستم برای نام های به اشتراک گذاشته شده صبر کند. |
پارامتر ها و گزینه های Logging
پارامتر | توضیحات |
/L | برای اینکه فایلها فقط فهرست گرفته شوند (نه کپی شوند نه حذف شوند و نه Time Stamp شان تغییر کند.) |
/X | گزارش گرفتن از همه فایلهای اضافه، نه فقط فایلهای که به نوعی انتخاب شده باشند. |
/V | نمایش جزئیات فایلهای تولید شده و نمایش همه فایلهای نادیده گرفته شده (Verbose) |
/TS | شامل Time Stamp فایل مبدا در خروجی |
/FP | شامل نام و مسیر کامل فایلها در خروجی |
/Bytes | نمایش حجم فایلها از بایت (Bytes) |
/NS | برای اینکه مشخص شود حجم فایلها نباید Log شوند. |
/NC | برای اینکه مشخص شود کلاس فایلها نباید Log شوند. |
/NFL | برای اینکه مشخص شود نام فایلها نباید Log شوند. |
/NDL | برای اینکه مشخص شود نام دایرکتوری ها نباید Log شوند. |
/NP | برای نمایش داده نشدن فرایند کپی (تعداد فایلهای کپی شده دیگر نمایش داده نمیشود) |
/ETA | نمایش زمان تخمین زده شده (ETA) از فایلهای که کپی شدند. |
/LOG: Log | نوشته شدن وضعیت خروجی روی فایل Log (اگر فایل Log از قبل وجود داشته باشد باز نویسی خواهد شد) |
/Unicode | نمایش وضعیت خروجی با فرمت Unicode |
/UniLog: Log | نوشتن وضعیت خروجی در یک فایل Log با فرمت Unicode (اگر فایل از قبل وجود داشته باشد بازنویسی خواهد شد) |
/UniLog+: Log | نوشتن وضعیت خروجی در یک فایل Log با فرمت Unicode (اگر فایل از قبل وجود داشته باشد متن به ادامه فایل موجود اضافه خواهد شد) |
/Tee | نوشتن وضعیت خروجی در پنجره Console به همراه اضافه نمودن در فایل Log |
/NJH | برای اینکه مشخص شود هیچ Job Header وجود ندارد. |
/NJS | برای اینکه مشخص شود هیچ Job Summary وجود ندارد. |
پارامتر ها و گزینه های مربوط به Job
پارامتر | توضیحات |
/Job: Name | برای اینکه مشخص شود پارامتر ها از فایل Job نام گذاری شده نشات گرفته شده اند. |
/Save: Name | برای اینکه مشخص شود پارامتر ها باید در فایل Job نام گذاری شده ذخیره شوند. |
/Quit | ترک پس از پردازش خط فرمان |
/NoSD | دایرکتوری مبدا مشخص نشده است. |
/NoDD | دایرکتوری مقصد مشخص نشده است. |
/IF | شامل فایلهای مشخص شده |
کد های بازگشتی (Return Codes) دستور RoboCopy
پس از اجرای دستور RoboCopy با یکی از کد های زیر مواجه خواهید شد که هر کدام آنها
یک معنی مشخص دارند این کدها از قرار زیر میباشند:
مقدار | توضیحات |
۰ | هیچ فایلی کپی نشد. با هیچ خطای روبرو نشدیم. هیچ فایل نا هماهنگی یافت نشد. فایل از قبل در پوشه مقصد موجود میباشد از اینرو فرایند کپی نادیده گرفته شد. |
۱ | کلیه فایلها با موفقیت کپی شدند. |
۲ | فایلهای اضافی در مقصد موجود بودند که در مبدا وجود ندارند، از اینرو هیچ فایلی کپی نشد. |
۳ | چندین فایل کپی شدند. فایلهای اضافی حاضر بودند، با هیچ مشکلی روبرو نشد. |
۴ | |
۵ | بعضی از فایلها کپی شدند. چند فایل نا هماهنگ وجود داشت. به هیچ مشکلی بر نخورد. |
۶ | فایلهای نا هماهنگ وجود دارند. هیچ فایلی کپی نشد و هیچ خطای هم اتفاق رخ نداد. این بدان معنی میباشد که فایلها از قبل در مقصد وجود داشتند. |
۷ | فایلها کپی شدند. یک فایل نا هماهنگ پیدا شد، و باقی فایلها حاضر میباشند. |
۸ | چندین فایل کپی نشد. |
بازدیدها: 6