کشیدن و رها کردن (Drag & drop) کار کپی و انتقال فایلها را بسیار ساده میکند. اگر شما میخواهید یک فایل را به فولدرهای مختلفی انتقال دهید در ویندوز 10 کافی است با نگه داشتن کلید کنترل (Ctrl) و کشیدن فایل یا فولدر مورد نظر بر روی فولدرهای هدف، کار کپی را به راحتی و سرعت زیاد انجام دهید.
با این حال اگر دقت کنید باز هم این کار کمی وقتگیر است زیرا شما مجبورید این فرایند را برای تک تک فولدرها انجام دهید تا فایل مورد نظر در همه آنها کپی شود. حال اگر تعداد فولدرها بسیار زیاد باشد حقیقتا دچار دردسر خواهید شد زیرا علاوه بر کسل کننده و زمانبر بودن این کار احتمال اشتباه و فراموشی در حین انجام کپی در یک فولدر یا برعکس انتقال دوباره فایل به یک فولدر وجود دارد. در اینجاست که استفاده از قابلیت انتقال دستهای فایل به کمک شما خواهد آمد و میتوانید در یک حرکت فایل را در تمام فولدرها کپی کنید!
اینطور بسیار کار آسانتر است، قبول دارید؟ پس با ما همراه باشید تا شیوه انجام آن را فرا بگیرید. برای فعال کردن این قابلیت نیاز است تا یک کد اسکریپ ساده را به کار ببرید. در شروع کار باید دقت داشته باشید این کد برای زمانی است که تمام فولدرهای مورد نظر همگی در یک فولدر مشخص قرار داشته باشند. بنابراین اگر فولدرها در مکانهای مختلفی قرار گرفته باشند این کد کار نخواهد کرد. اکنون با توجه به این نکته، نوتپد (Notepad) را باز کنید و کد زیر را در آن کپی کنید. البته قبل از ذخیره کردن آن شما باید بخشهایی که اشاره خواهد شد را ویرایش نمایید سپس آن را ذخیره نمایید.
@echo off for /D %%a in ("path-to-folder\*.*") do xcopy /y /d path-to-file\file.FileExt "%%a\"
اولین بخش از کد که باید اصلاح شود مربوطه به گزینه “path-to-folder\*.*” میشود. در این قسمت باید آدرس مسیر فولدری که تمام فولدرها در آن قرار دارند، تغییر پیدا کند. برای نمونه اگر این فولدر به نام Games اسمگذاری شده است و سه فولدر هدف برای کپی به نامهای 1، 2 و 3 در آن قرار دارند در این صورت نیاز است تا مسیر کامل فولدر Games را وارد کنید. البته دقت کنید که علامت دوستاره (*.*) در انتها و علامت دابل کوتیشن و پرانتز (“ ”) در دو طرف مسیر را حذف نکنید.
دومین بخش از ویرایس مربوط به مسیر فایل مورد نظر در این قسمت path-to-file\file.FileExt است. مسیر فایل خود را جایگزین آن نمایید. دقت کنید نام فایل و پسوند آن را نیز وارد کنید. اگر در آدرس یا نام فایل از فاصله (Space) استفاده شده بود شما آن را با علامت دابل کوتیشن مشخص نمایید. خب کار تمام است اکنون فایل نوتپد را با پسوند فایل BAT ذخیره کنید و سپس اجرایش نمایید. و به همین راحتی فایل در تمامی زیرفولدرها کپی خواهد شد.
مثال:
برای راحتی کار و جلوگیری از اشتباهات ناخواسته یک کد نمونه را در زیر آوردهایم و شما نیز میتوانید مانند آن، کد خود را کامل کنید. در اینجا نام فایل من MyFile.txt و دارای پسوند متنی txt است. مکان فایل نیز در آدرس C:\Users\fatiw\Desktop\Test قرار دارد. برای انتقال آن به تمام زیرفولدرهای مورد نظر که در داخل فولدری با آدرس C:\Users\fatiw\Desktop\Newfolder قرار گرفته، دستور به صورت زیر اصلاح شده است.
@echo off for /D %%a in ("C:\Users\fatiw\Desktop\Newfolder\*.*") do xcopy /y /d C:\Users\fatiw\Desktop\Test\MyFile.txt "%%a\"
حالا اگر به هر دلیلی شما مایل نیستید از کد اسکریپت برای انجام این کار استفاده کنید، باز هم نگران نباشید زیرا راهحل دیگری پیش پای شما وجود دارد و آن هم استفاده از دستورات Command Prompt است. کافی است این ابزار را باز کنید و کد را به صورت زیر در آن وارد کنید.
for /D %a in ("c:\path-to-folder\*.*") do xcopy /y /d c:\test\file.FileExt "%a\"
در این حالت نیز ما تنها دو تغییر را ایجاد کردهایم. عبارت echo off@ و یکی از علامتهای % حذف شده است. البته دقت داشته باشید شما هنوز هم نیاز دارید مسیردهی را طبق آدرس فایل و فولدر بر روی سیستم خود اصلاح نمایید. ولی در برنامه Command Prompt میتوانید مراحل انجام فرایند انتقال را مشاهده کنید. اگر شما هم روش بهتری سراغ دارید با ما و دیگر دوستان درمیان بگذارید.
سلام این کد رو میزنم و به BAT تبدیلش کردم ولی ارور میده parse error این نوشته رو هی مینویسه مشکل کجاست؟؟
for /D %%a in (“C:\Users\fatiw\Desktop\Newfolder\*.*”)
“do xcopy /y /d “C:\Users\fatiw\Desktop\Test\MyFile.txt” “%%a
علامت دابل کوتیشن در ابتدا و انتهای مسیر مقصد لازم است.
عرض سلام و ادب دارم خدمت شما ممنون میشم اگه سوال من رو پاسخگو باشید
من میخوام یک فولدر در درایو C و یکی در درایو D ایجاد کنم به طوری که اگر در فولدر اول چیزی ریختم همزمان در فولدر دوم هم کپی شود ولی اگر از فولدر دوم چیزی را حذف کنم از فولدر اصلی یعنی همون فولدر اول حذف نشود
شما برای اینکارراه حلی دارید؟آیا؟؟
امیدوارم منظورمو رسونده باشم