تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 8 از 8

نام تاپيک: ایجاد بچ فایل برای جمع آوری لاگ فایل

  1. #1
    در آغاز فعالیت
    تاريخ عضويت
    Oct 2008
    پست ها
    7

    پيش فرض ایجاد بچ فایل برای جمع آوری لاگ فایل

    سلام دوستان
    من یه صورت مسئله دارم که سعی میکنم به واضح ترین شکل توضیحش بدم:
    یه برنامه دارم که دوتا فایل لاگ A و B را در دو مسیر مختلف ایجاد میکنه. این دو تا فایل لاگ محدودیت حجمی دارن و تقریبا هر هفته Overwrite میشن. به همین دلیل من احتیاج دارم که از یک طریقی هر روز از این دوتا لاگ یه کپی بگیرم و به صورت فایل زیپ شده در یک پوشه آرشیو کنم و تا سه ماه اونها رو نگه دارم یعنی فایل هایی که بیشتر از سه ماه از ایجادشون گذشته اتوماتیک پاک شن تا حجم پوشه آرشیو هم زیاد نشه.
    در جستجو هایی که انجام دادم دیدم به نظر میرسه که با بچ فایل میشه این کارو انجام داد و لی نمیدونم چه طوری ... کسی ازدوستان میتونه راهنمایی کنه لطفاً؟

  2. #2
    کاربر فعال انجمن برنامه نویسی n00b's Avatar
    تاريخ عضويت
    May 2012
    محل سكونت
     
    پست ها
    297

    پيش فرض

    سلام...///
    *****************
    این برنامه رو تست کنید..// امیدوارم کار کنه// قسمت حذف فایل های قدیمی تر از 3 ماه رو کامل تست نکردم ولی فکر می کنم کار می کنه...///
    ************************
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ********************
    متأسفانه نسخه های قدیمی تر از ویندوز 8.1 به صورت پیشفرض قابلیت zip کردن فایل ها رو ندارن// برای حل این مشکل یکی از روش ها استفاده از makecab برای فشرده سازی فایل ها هستش که آرشیو cab میسازه...////
    ***************
    موفق باشید!

  3. این کاربر از n00b بخاطر این مطلب مفید تشکر کرده است


  4. #3
    در آغاز فعالیت
    تاريخ عضويت
    Oct 2008
    پست ها
    7

    پيش فرض

    سلام؛
    ممنون از پاسختون. این قسمت پاک کردنش رو میشه لطفاً کمی توضیح بدید، مکانیزم عملش به چه صورت هست؟

  5. #4
    کاربر فعال انجمن برنامه نویسی n00b's Avatar
    تاريخ عضويت
    May 2012
    محل سكونت
     
    پست ها
    297

    پيش فرض

    سلام...///
    **************
    کد جدید...////

    ******************
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ************************
    برای انتخاب و حذف فایل های قدیمی تر از 90 روز (3 ماه) از دستور forfiles استفاده می کنیم../// پارامتر ها به این شکل هستن../// پارامتر m/ فیلتر رو مشخص می کنه که ما اینجا فایل های cab رو فیلتر کردیم.../// پارامتر d/ تاریخ رو مشخص می کنه و با ارسال عدد 90- فایل های قدیمی تر از 90 روز رو انتخاب می کنیم../// در نهایت پارامتر c/ دستوری که باید روی فایل های انتخاب شده اجرا بشه رو مشخص می کنه که ما دستور cmd /c del /q @ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] رو ارسال کردیم تا فایل ها حذف بشن../// مستندات این دستور رو می تونید با مراجعه به آدرس پایین مشاهده کنید...////
    *******************
    cmd خط فرمان رو اجرا می کنه و اگه پارامتر c/ رو بهش ارسال کنید بعد از اجرای دستور به صورت خودکار بسته میشه.../// دستور del فایل رو حذف می کنه و پارامتر q/ که به این دستور ارسال کردیم باعث میشه بدون پرسیدن سوال از کاربر فایل رو حذف کنه.../// متغییر path توسط forfiles مقداردهی می شه و آدرس کامل فایل انتخاب شده داخلش ذخیره میشه...///
    **************************
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ******************
    موفق باشید!

  6. این کاربر از n00b بخاطر این مطلب مفید تشکر کرده است


  7. #5
    در آغاز فعالیت
    تاريخ عضويت
    Oct 2008
    پست ها
    7

    پيش فرض

    سلام

    واقعاً متشکرم، توضیحاتتون کاملاً واضح هستن. ممنون.
    میشه لطفاً این قسمت رو هم توضیح بدین؟

    dir /s /b /a-d ".\new" > ".\list"
    makecab /d CabinetName1=%date:~4,2%.%date:~7,2%.cab /f ".\list"
    copy .\disk1\*.cab
    del /q ".\list"
    del /q ".\setup.*"
    rd /q /s ".\new"
    rd /q /s ".\disk1"

  8. #6
    کاربر فعال انجمن برنامه نویسی n00b's Avatar
    تاريخ عضويت
    May 2012
    محل سكونت
     
    پست ها
    297

    پيش فرض

    سلام...///
    ********************
    دستور "dir /s /b /a-d ".\new محتویات پوشه ی new که تو مسیر فعلی قرار داره رو لیست می کنه و با استفاده از عملگر < خروجی این دستور رو داخل فایلی به اسم list تو مسیر فعلی ذخیره می کنیم..//// با استفاده از پارامتر s/ مشخص می کنیم که فایل هایی که داخل زیرپوشه ها قرار دارن هم باید لیست بشن در واقع ما نیازی به لیست فایل هایی که در زیرپوشه ها قرار دارن نداریم چون اصلاً زیرپوشه ای داخل پوشه new وجود نداره اما ارسال این پارامتر باعث میشه اسم هر فایل با مسیر کاملش لیست بشه و برای ارسال لیست فایل ها به برنامه makecab به لیست فایل ها با مسیر کاملشون نیاز داریم../// با ارسال پارامتر b/ اطلاعات اضافی مثل تاریخ و.. رو از لیست حذف می کنیم../// و در نهایت با پارامتر a-d/ پوشه ها رو هم از خروجی حذف می کنیم../// پارامتر a-d/ معادل a:-d/ هست// a مخفف attribute هست و d مخفف directory و ارسال این پارامتر باعث میشه فایل هایی که مشخصه directory دارن از لیست حذف بشن../// توجه کنید همیشه خروجی dir شامل دو پوشه داخل مسیر فعلی هست..// پوشه . که به پوشه ای که داخلش هستیم اشاره می کنه و مسیر فعلی رو مشخص می کنه و پوشه ی .. که به پوشه ی پدر اشاره میکنه و مسیری که پوشه ی فعلی داخلش قرار داره رو مشخص می کنه..//// این دو مسیر نباید داخل لیست وجود داشته باشن به همین خاطر پارامتر a-d/ رو ارسال می کنیم تا داخل لیست قرار نگیرن..///
    ***************************
    با دستور "makecab /d CabinetName1=%date:~4,2%.%date:~7,2%.cab /f ".\list آرشیو cab رو می سازیم../// با استفاده از پارامتر d/ مشخصه های آرشیو رو مقدار دهی می کنیم../// که در اینجا ما اسم آرشیو رو مقداردهی کردیم/// date:~4,2 از کاراکتر 5 خروجی date به طول دو کاراکتر جدا می کنه که برابر با مقدار عددی ماه میلادی هست../// date:~7,2 به همین شکل از کارکتر 8 به طول دو کاراکتر جدا می کنه که برابر مقدار روز هست در نهایت پسوند cab رو اضافه می کنیم و مجموع این ها اسم آرشیو رو میسازن../// با استفاده از پارامتر f/ لیست فایل هایی که باید به آرشیو اضافه بشن رو به makecab ارسال می کنیم...//// در اینجا فایل list رو که قبلاً ساختیم و لیست فایل ها رو داخلش ذخیره کردیم به makecab ارسال می کنیم..///
    ************************
    خروجی برنامه makecab تعدادی فایل هست که داخل پوشه ی فعلی ساخته میشن..// آرشیو داخل پوشه ی disk1 در مسیر فعلی قرار می گیره که با استفاده از دستور copy .\disk1\*.cab به مسیر فعلی منتقلش می کنیم../// با استفاده از دستور "del /q ".\list فایل لیست رو که ایجاد کرده بودیم حذف می کنیم../// پارامتر q/ باعث میشه بدون درخواست تأیید از کاربر فایل ها حذف بشن..//// تعدادی فایل به اسم setup با پسوند های مختلف هم توسط برنامه makecab ایجاد میشه که با استفاده از دستور "*.del /q ".\setup این فایل ها رو هم حذف می کنیم...///
    *******************************
    در نهایت با استفاده از دستور "rd /q /s ".\new پوشه ی new و با استفاده از دستور "rd /q /s ".\disk1 پوشه ی disk1 رو حذف می کنیم../// از دستور rd برای حذف پوشه ها استفاده میشه../// پارامتر q/ باعث میشه بدون درخواست تأیید از کاربر پوشه ها حذف بشن.../// و با استفاده از پارامتر s/ تمام فایل ها و زیرپوشه هایی که داخل مسیر مورد نظر وجود دارن رو حذف می کنیم../// در صورتی که مسیر مورد نظر حاوی زیرپوشه و... باشه برای حذف مسیر باید این پارامتر رو اضافه کنید..///
    ****************************
    اگه قسمتی رو خوب توضیح ندادم بگید تا بهتر توضیح بدم../// مستندات دستورات بالا رو می تونید با مراجعه به آدرس های پایین مشاهده کنید...////
    ************************
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    *********************
    موفق باشید!
    Last edited by n00b; 29-05-2016 at 23:41.

  9. این کاربر از n00b بخاطر این مطلب مفید تشکر کرده است


  10. #7
    در آغاز فعالیت
    تاريخ عضويت
    Oct 2008
    پست ها
    7

    پيش فرض

    سلام
    ممنونم از توضیحات کاملتون برای من که خیلی خیلی مفید بود . واقعاً متشکرم.
    یک سوال دیگه ، ما در قسمتی که اسم و مسیر لاگ فایلی که میخواهیم ازش کپی تهیه بشه رو ست کردیم اسم فایل رو ذکر کردیم، اما یکی از این لاگ ها رو نمیشه به این صورت آدرس داد چراکه هرروز با تاریخ همون روز به عنوان اسم فایل یه لاگ در پوشه مربوطه ایجاد میکنه و باید لاگ همون روز تو فایل زیپ ذخیره بشه. میشه به این صورت اسم فایل رو آدرس دهی کرد؟

    متشکرم

  11. #8
    در آغاز فعالیت
    تاريخ عضويت
    Oct 2008
    پست ها
    7

    پيش فرض

    سلام
    جواب این سوال رو خودم با آزمون و خطا پیدا کردم


    set TEMP=%date:~10,4%%date:~4,2%%date:~7,2%"
    set A="F:\sattari\A\LOG\%TEMP%.TRC.XML"
    copy %A% ".\new\%TEMP%.TRC.XML

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •