subfolder

Singular

Active Member
چطور میتونم یه لیستی از پوشه ها و تموم زیر شاخه های پوشه ها داشته باشم

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


 

Singular

Active Member
بهترین پلاگین برای این کار foldyplugin هستش

سلام از این پلاگین استفاده کذدم...ولی نتیجه نگرفتم

تمام زیر شاخه هارو نمیده

مثلا در تصویر میبینید آدرس درایو D رو میدم...ولی فقط پوشه هایی که داخل درایو d هست رو میده
زیر شاخه های اون پوشه ها رو نمیده...مثلا داخل پوشه 515 پوشه های دگ هم هست..که میخوام اوناهم نشون بده که نمیده...


attachment.php


این کارو با دستور cmd انجام دادم...تنها مشکل فونت فارسی هست...یعنی اگر پوشه ای فارسی باشه...تو لیستی که از پوشه ها و زیر شاخه گرفته میشه اسم اون پوشه بهم ریخته نشون میده
 

پیوست ها

  • Singular1.jpg
    Singular1.jpg
    150.6 کیلوبایت · بازدیدها: 36

محمدمهدی

Well-Known Member
نحوه دریافت فارسی به صورت ansi از cmd در mmb

در محیط cmd میشه فارسی داشت.
فقط کاملا دقت کنید :
در صورتی که ویندوز فارسی روش نصب باشه میشه به صورت non-Unicode فارسی یا دقیقا Unicode از محیط داس گرفت. فقط باید دقت داشته باشید که در هر صورت نام فایل ها و فولدر ها به صورت Unicode ذخیره میشه و MMB فقط non-Unicode می خونه. یعنی برای مثال ممکنه حرف «ی» فارسی به «ي» عربی تبدیل بشه. البته اگه از همون اول نام فولدر با Shift+X (یعنی همون ي عربی باشه) هیچ مشکلی پیش نمیاد. و برای کار با Unicode در MMB میشه با ترفند استفاده از فایل Bat آماده با Unicode هم کار کرد اما نکته های زیادی داره.
حالا چطور؟
با استفاده از دستور CHCP و کد زبان مربوط به اون.
یعنی همین الان CMD رو باز کنید و توش برای مثال بنویسید :
کد:
CHCP 1256
حالا همه ی خروجی ها به صورت Windows-1256 non-Unicode عربی ارائه میشه.
و برای گرفتن همین در MMB با رعایت یک نکته و یک روش میشه اینطوری عمل کرد :
کد:
  cmd$='HIDE,WAIT /a /q /c "CHCP 1256 > nul && (CHCP 1256 > nul | dir "<SrcDir>" /a:d /b /o:n > "%Temp%\FolderNames.log")"'
  Run("cmd","cmd$")
شما می تونید به جای <SrcDir> از آدرس مد نظرتون استفاده کنید. و نتیجه رو توی یه فایل log در Temp ویندوز دریافت کنید.
نکته 1 : چرا هم از And یعنی && و هم از Or یعنی | استفاده کردم؟ چون در آزمایش ها گاهی در ویندوز XP دستور CHCP با تاخیر عمل می کنه.
نکته 2 : چرا از عبارت /a استفاده کردم؟ چون نیاز داشتم این نتیجه حتما به صورت ANSI دریافت بشه مگرنه اگر پیش فرض تنظیمات ویندوز روی Unicode بود من نمی تونستم در MMB اونها رو بررسی کنم.

* برای فهمیدن این نکات به این صورت عمل کردم : جستجو در مراجع اطلاعات فنی سایت میکروسافت و راهنما های دستور های خود CMD. یعنی جلوی یه دستور CMD از عبارت /? استفاده کنید و یا عین نیازتون رو در سایت های مرجع با زبان اصلی جستجو بفرمایید و کمی تلاش و امتحان.

موفق باشید.
 
آخرین ویرایش:

Singular

Active Member
در محیط cmd میشه فارسی داشت.
فقط کاملا دقت کنید :
در صورتی که ویندوز فارسی روش نصب باشه میشه به صورت non-Unicode فارسی یا دقیقا Unicode از محیط داس گرفت. فقط باید دقت داشته باشید که در هر صورت نام فایل ها و فولدر ها به صورت Unicode ذخیره میشه و MMB فقط non-Unicode می خونه. یعنی برای مثال ممکنه حرف «ی» فارسی به «ي» عربی تبدیل بشه. البته اگه از همون اول نام فولدر با Ctrl+X (یعنی همون ي عربی باشه) هیچ مشکلی پیش نمیاد. و برای کار با Unicode در MMB میشه با ترفند استفاده از فایل Bat آماده با Unicode هم کار کرد اما نکته های زیادی داره.
حالا چطور؟
با استفاده از دستور CHCP و کد زبان مربوط به اون.
یعنی همین الان CMD رو باز کنید و توش برای مثال بنویسید :
کد:
CHCP 1256
حالا همه ی خروجی ها به صورت Windows-1256 non-Unicode عربی ارائه میشه.
و برای گرفتن همین در MMB با رعایت یک نکته و یک روش میشه اینطوری عمل کرد :
کد:
  cmd$='HIDE,WAIT /a /q /c "CHCP 1256 > nul && (CHCP 1256 > nul | dir "<SrcDir>" /a:d /b /o:n > "%Temp%\FolderNames.log")"'
  Run("cmd","cmd$")
شما می تونید به جای <SrcDir> از آدرس مد نظرتون استفاده کنید. و نتیجه رو توی یه فایل log در Temp ویندوز دریافت کنید.
نکته 1 : چرا هم از And یعنی && و هم از Or یعنی | استفاده کردم؟ چون در آزمایش ها گاهی در ویندوز XP دستور CHCP با تاخیر عمل می کنه.
نکته 2 : چرا از عبارت /a استفاده کردم؟ چون نیاز داشتم این نتیجه حتما به صورت ANSI دریافت بشه مگرنه اگر پیش فرض تنظیمات ویندوز روی Unicode بود من نمی تونستم در MMB اونها رو بررسی کنم.

* برای فهمیدن این نکات به این صورت عمل کردم : جستجو در مراجع اطلاعات فنی سایت میکروسافت و راهنما های دستور های خود CMD. یعنی جلوی یه دستور CMD از عبارت /? استفاده کنید و یا عین نیازتون رو در سایت های مرجع با زبان اصلی جستجو بفرمایید و کمی تلاش و امتحان.

موفق باشید.



خیلی ممنونم...عالی بود .مشکلم حل شد
جست و جو خیلی مهمه .. من هم خیلی جست وجو میکنم حتی زبان اصلی.. کمو بیش باز اطلاعاتی میگیرم.. ولی این مورد عالی بود..خیلی جاها چنین مشکلی داشتم...تشکر
 

جدیدترین ارسال ها

بالا