تغییر نام گروهی و دسته جمعی فایل ها در ویندوز

تغییر نام فایل ها در Windows Explorer
تغییر نام فایل ها بصورت گروهی در ویندوز
حتماً برای شما هم پیش آمده است که در ویندوز بخواهید نام گروهی از فایل ها را همزمان تغییر دهید. خب در ساده ترین حالت هدف تغییر نام کلی فایل ها است در این حالت راه حل بشرح زیر است:
- همه فایل های مورد نظر را انتخاب کنید.
- کلید F2 را بزنید.
- نام جدید را وارد کرده و کلید Enter را بزنید.
از آنجایی که امکان وجود دو فایل هم نام در یک مسیر وجود ندارد ویندوز فایل های انتخاب شده را با فرض اینکه برای نام آنها عبارت “abc” وارد شده باشد به ترتیب به صورت زیر تغییر نام می دهد.
abc (1), abc (2), abc (3),..., abc (n)
تغییر گروهی نام فایل ها در ویندوز با PowerShell
در مواقعی خواست ما کمی پیچیده تر از این حالت است که بخواهیم نام چند فایل را بصورت کامل تغییر دهیم مثلاً ممکن است بخواهیم عبارتی را از اول یا آخر اسم چند فایل برداریم. مثلاً فایل هایی بصورت زیر داریم:
Notif-SampleMovie-S1E1.mkv Notif-SampleMovie-S1E1.srt Notif-SampleMovie-S1E2.mkv Notif-SampleMovie-S1E2.srt Notif-SampleMovie-S1E3.mkv Notif-SampleMovie-S1E3.srt . . . Notif-SampleMovie-S1En.mkv Notif-SampleMovie-S1En.srt
می خواهیم عبارت [Notif-] را از اول نام همه فایل ها برداریم بطوری که نتیجه ای مثل زیر حاصل شود:
SampleMovie-S1E1.mkv SampleMovie-S1E1.srt SampleMovie-S1E2.mkv SampleMovie-S1E2.srt SampleMovie-S1E3.mkv SampleMovie-S1E3.srt . . . SampleMovie-S1En.mkv SampleMovie-S1En.srt
ویندوز خود چنین امکانی را برای انجام اینکار ندارد تا نام همه فایل ها را بصورت خودکار تغییر دهد. خب اولین راه حل این است که بصورت دستی دست بکار شویم و فایل ها را یکی یکی تغییر نام دهیم. این روش برای تعداد فایل کم قابل تحمل است اما برای تعداد زیاد فایل کاری طاقت فرساست. خب از آنجایی که برای هر مشکلی راه حلی وجود دارد برای این موضوع هم روشی وجود دارد که با یک دستور نام تمام فایل ها طبق خواسته شما تغییر میکنند. کلید کار در دست PowerShell می باشد.
ویندوز پاورشل (Windows PowerShell)
ویندوز پاورشل (Windows PowerShell) یک چارچوب مدیریتی برای پیکربندی و خودکارسازی وظایف را فراهم می کند و به عنوان یک موتور خودکار قابل ارتقاء، از طرف مایکروسافت ارائه شده است. پاورشال از یک پوسته خط فرمان و یک زبان پردازهنویسی تشکیل شده و دسترسی کاملی به COM و WMI را فراهم می کند. PowerShell به مدیران امکان مدیریت سیستم (سیستم های لینوکس و دستگاه های شبکه) در هر دو حالت محلی و از راه دور (Remote) را می دهد.
کلاً اگر با محیط CMD آشنایی داشته باشید با پاورشل هم می توانید براحتی ارتباط برقرار کنید. پاورشل مثل یک چوب جادوست که اگر کار کردن با آن را بلد باشید می توانید کارهای خارق العاده ای با آن انجام دهید.
خب حال روش حل مسئله تغییر گروهی نام فایل ها برای حذف پیشوند از ابتدای نام آنها بصورت زیر می باشد:
ابتدا باید وارد محیط پاورشل شوید برای اینکار:
در منوی استارت کافی است کلمه PowerShell را جستجو کنید تا ویندوز میانبر اجرای آن را به شما نمایش دهد:
و یا در منوی استارت این مسیر را دنبال کنید:
Start Menu\Programs\Accessories\Windows PowerShell
بعد از باز شدن پاورشل با محیط آبی رنگ آن روبرو خواهید شد.
برای تغییر نام فایل ها باید مسیر جاری پاورشل را به پوشه ای که فایل ها در آن قرار دارند تغییر دهید برای این کار مثل محیط CMD می توان از دستور cd استفاده کرد. دستور cd دستوری است که با آن می توان بین پوشه ها حرکت کرد. فقط توجه داشته باشید که برای پوشه هایی که نام آنها دارای کاراکتر فاصله (Space) می باشد باید نام آنها را در درون کاراکتر “” قرار دهید. بطور مثال اگر فایل های من در مسیر (C:\movie\session 1\edpisode 1) باشد باید دستورات زیر را به ترتیب اجرا کرد تا مسیر جاری پاورشل به پوشه موردنظر ما تغییر کند.
PS C:\Users\REZA> cd\ PS C:\> cd movie PS C:\movie> cd "session 1" PS C:\movie\session 1> cd "episode 1" PS C:\movie\session 1\episode 1>
پس از اینکه مسیر جاری به پوشه مورد نظر ما تغییر کرد برای حذف عبارت “-Notif” از اول نام فایل ها دستور زیر را وارد می کنیم:
get-childitem *.* | foreach { rename-item $_ $_.Name.Replace("Notif-", "") }
دستور get-childitem در ترکیب با عبارت *.* لیست فایل ها با هر نام و هر پسوندی را برای تغییر نام بر می گرداند. سپس دستور foreach به ازای هریک از فایل های لیست شده که در ضابطه تعیین شده صدق میکنند، بررسی می کند که آیا در ابتدای نام آن عبارت -Notif وجود دارد یا خیر اگر وجود داشته باشد آن را با یک رشته تهی جایگزین می کند.
یک مثال دیگر:
فایل های زیر را در نظربگیرید:
می خواهیم کاراکترهای فاصله موجود در نام ها را به کاراکتر Underline “_” تغییر دهیم بدین منظور از دستور زیر استفاده می کنیم:
Dir | Rename-Item –NewName { $_.name –replace “ “,”_” }
دستور Dir لیست همه فایل های موجود در دایرکتوری (پوشه) جاری را بر می گرداند، سپس دستور Rename-Item بقیه کار را انجام داده و کاراکترهای فاصله را با UnderScore یا همان UnderLine جایگزین می کند.
پس از اجرای دستور بالا نتیجه زیر حاصل می شود:
تغییر نام فایل ها با استفاده از خط فرمان CMD
در مجموعه دستورات DOS دستور Rename یا Ren برای تغییر نام فایل و پوشه ها موجود است که می توانید از آن برای تغییر نام همزمان چندفایل استفاده کنید. حال اگر از الگوهای Wildcard مثل * و ? استفاده کنید می توانید کارهای جالبی انجام دهید.
نکته اول برای استفاده از این دستور بازکردن محیط CMD یا همان شبیه ساز خط فرمان DOS در ویندوز به نام Command Prompt جهت ورود دستور می باشد. ساده ترین راه باز کردن CMD در یک مسیر مشخص این است که پوشه مورد نظر را باز کرده و همانطور که کلید Shift را نگه داشته اید درون پوشه راست کلیک کرده و گزینه open Command windows here را انتخاب کنید تا پنجره CMD با مسیر جاری پوشه مورد نظر باز شود. در غیر اینصورت می توانید در کادر RUN عبارت CMD را تایپ کرده و یا در منوی استارت آن را جستجو کنید تا بتوانید CMD را باز کنید اما باید همانطور که در بخش پاورشل توضیح داده شد با دستور cd مسیر جاری را به پوشه مورد نظر تغییر دهید.
یکی از مهمترین استفاده های دستور ren تغییر دسته جمعی پسوند گروهی از فایل ها می باشد. بعنوان مثال دستور زیر تمام فایل های html موجود در پوشه جاری را به txt تغییر می دهد:
ren *.html *.txt
نتیجه کار پس از اجرای دستور بالا بصورت زیر خواهد بود:
روش آخر: استفاده از نرم افزارهای تغییر نام
اگر خیلی اهل دستور و کارهای فنی نیستید می توانید از یکی دوجین نرم افزارهای آماده تغییر نام استفاده کنید. در زیر نام چندتا از این برنامه ها که معروف تر هستند را معرفی خواهیم کرد.
Bulk Rename Utility
نرم افزار Bulk Rename Utility یک برنامه کم حجم برای تغییر نام فولدر و فایل ها با امکانات فوق العاده قابلیت تغییر نام دسته ای و سریع فایل و فولدرها می باشد.
- تغییر نام سریع چندین فایل و پوشه
- امکان تغییرنام خودکار بر اساس متاتگ های فایل های Jpeg و mp3
- امکان کنترل همزمان بیش از 100000 فایل در یک پوشه و تغییرنام 1000 فایل در هر ثانیه
- تغییرنام به روش های متفاوت، پشوندی، پسوندی و …
- نام گذاری بر اساس تاریخ و زمان، اعداد، تغییر حروف بزرگ و کوچک و …
- کاملاً رایگان
- و کلی ویژگی دیگر که باید نصب کنید و خودتان آنها را تجربه کنید.
Advanced Renamer
یک نرم افزار قدرتمند دیگر که تمام ویژگی های Bulk Rename Utility را به همراه داشته و بعلاوه بر آن از امکانات دیگری مثل کار با داده های سیستم موقعیت یاب GPS که در آن می توان نام شهری که تصویر در آن گرفته شده را به نام فایل آن تصویر اضافه کرد و … بهره می برد. این نرم افزار نیز کاملاً رایگان می باشد.
ReNamer
Rename Master
همچنین برخی از نرم افزارهای دیگر هم موجود هستند که می توانید آنها را نصب کرده و استفاده کنید.
موفق باشید.
مهندس جان دمت گرم
حاجی دمت گرم کارم راه افتاد ایول
سلام ببشید تو پاوزشل میخوام حرف اول فایل هارو به صورت حرف بزرگ کنم دستوری داره؟
سلام می توانید به این پیج در سایت Stack Overflow مراجعه کنید
سلام ممنون از توضیحات خوبتون اما من می خواستم مثلا عبارت aaa را به آخر اسم 5000 تا فایل اظافه کنم که تعداد کاراکتر های این 5000 تا فایل متفاوته مثلا یکی 20 کاراکتر اسمشه اما یکی 3 کاراکتر اسمشه باید از چه دستوری استفاده کنم ممنون میشم راهنمایی کنید
سلام برای اینکار می توانید از پاورشل استفاده کنید.
$items=Get-ChildItem;
$items | Rename-Item -NewName {$_.Name + "_Suffix" };
بجای عبارت Suffix میتوانید عبارت مورد نظر خودتان را جایگزین کنید