PDA

نسخه کامل مشاهده نسخه کامل : تغییر نام فایلهای سریالی



MRHArtsClube
01-02-2013, 17:31
سلام دوستان
من چند هزارتا فایل دارم که باید تغییر اسم بدمشون. میخوام براش یه برنامه بنویسم، با یکی از زبانهای Batch Files - C Sharp - VB.Net - VB6 که نسبتا بلدم.
قضیه اینجوری بود (ببخشید اگه طولانی میشه! امیدوارم درست بتونم بگم)

من چند صد تا پوشه داشتم، تو هرکدومشون فایلهایی بود که اسماشو سریالی بود. مثل 1-2-3-4-... یا 001-002-003-004-... یا Pic1-Pic2-Pic3-... که تو اسمشون یه بخش عددی داشت که زیاد شونده بود.
مشکل کار اینجا بود که توی چند سری از پوشه ها اسما تکراری بود! یعنی مثلا توی 10 تا از پوشه ها هرکدوم 100 تا فایل بود که اسماشون 1 تا 100 بود. یعنی مجموعا من 10 تا فایل با اسم 1؛ 10 تا فایل با اسم 2 و ... 10 تا با اسم 100 داشتم.
برای راحت شدن کارم همشون رو آوردم کنار هم! اما همین تشابه اسمها باعث شد من مثلا کنار هم 10 تا فایل داشته باشم که اسم اصلیشون 1 بوده و الان شدن 1 - (2)1 - (3)1 - (4)1 و ...؛ همینطور 10 تا فایل با اسم 2، و 10 تا 3 و ...
حالا بجای اینکه من 100 تا عکس پوشه اول رو کنار هم داشته باشم، 100 تا عکس پوشه دوم رو کنار هم و ... تا پوشه دهم؛ 10 تا عکس اول هر پوشه رو کنار هم دارم، 10 تا عکس دوم هر پوشه بعدش میان و...
میخوام یه برنامه بنویسیم که بیاد همه عکسهای هر پوشه رو (که مثلا 100 تا بوده ولی در واقعیت متغیره) اسماشونو تغییر بده که بیان کنار هم! مثلا بشن seq1-1 - seq1-2 - seq1-3 و ... برای پوشه اول و seq2-1 - seq2-2 - seq2-3 و ... برای پوشه دوم و...


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

MRHArtsClube
01-02-2013, 23:07
خب الگوریتمم اینه:

اسم اولین فایل رو بگیره
فقط بخش عددی بیرون پرانتزشو پیدا کنه و یکی اضافه کنه
حالا فایل دوم رو پیدا کنه و همینجور تا آخری
اسماشونو که پیدا کرد توی یه آرایه بریزه و فایلها رو تغییر نام بده
آرایه های یک عنصری رو بیخیال بشه :n02:

فکر کنم این جواب میده! ممنون میشم کمکم کنید مخصوصا توی قدم 2

_H2_
02-02-2013, 01:16
سلام
این امور در حد برنامه نویسی کامل نیستند.

بظور حتم در جریان هستید که ویندوز یک کنسول خط فرمان ساده به نام Command Prompt را از زمان DOS به ارث برده که بطور مثال فرامین ساده ای هم مانند ren برای تغییر نام دسته جمعی فایلها دارد که بطور معمول طوری فایلها را تغییر نام میدهد که اصلاً فکرش را هم نکرده بودید ! :n02:

ولی متاسفانه بعید میدانم که بدانید مدت هاست ویندوز مجهز به یک خط فرمان بسیار قدرتمند به نام PowerShell شده که از ابهت و قابلیت هایش آدم خجالت میکشد بگوید برای همچین کارهایی میتوانید از PowerShell استفاده کنید!

برای این امور روزانه یا خط مشی های مدیران شبکه برای اجرای یک عمل روی تعداد زیادی رایانه و کنترل مدیریت کامل سرور ها و... PowerShell ایده آل است.
کافی است نامش را در Start->SearchBox وارد کنید.
دو رابط کاربری عادی و پیشرفته (ISE) دارد.
لازم بذکر است که بجز دستورات مخصوص خودش، این محیط از دستورات و توابع و سینتکس #C هم برای پردازش و صدور فرمان و... پشتیبانی میکند.

کافیست در همان محیط عادی کدی مانند این را وارد کنید و در پایان Enter کنید تا فرمان اجرا شود ...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این خط فرمان فایلهای پوشه AAA را جاروب کرده و نام هایی مانند این را:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(کد فوق فایلی که هیچ عددی نداشته باشد را تغییر نام نمیدهد)

به این نام ها تغییر میدهد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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

MRHArtsClube
02-02-2013, 17:11
_H2_ جان ممنونم!
این دستور کاری رو که من میخوام انجام نمیده! فقط فایلها رو تغییر نام میده و ترتیبی رعایت نمیشه!
من یه طور دیگه بصورت دستی مشکل رو حل کردم اما 2 ساعت زمان برد :n02:
به هرحال ممنونم