View Full Version : مبتدی: کپی کردن یک فولدر
googoli
پنج شنبه 01 اردیبهشت 1390, 23:59 عصر
با سلام خدمت اساتید گرامی
من هر چه در تالار گشتم نتونستم به مطلب مورد نظرم برسم
من میخوام در برنامه از یک فولدر کپی بگیرم و در جای دیگه ای بریزم خیلی راحتش رو بگم میخوام از بانک هام بک اپ بگیرم ولی دستور مورد نظرش رو پیدا نکردم اگر راهنماییم کنید مثل همیشه ممنونتون میشم
binyaz2003
جمعه 02 اردیبهشت 1390, 07:21 صبح
راهنمای دستورات ذیل را مطالعه کنید:
MKDIR
ADir()
Copy File
googoli
جمعه 02 اردیبهشت 1390, 22:48 عصر
با تشکر از اقای بی نیاز
من با این دستور اشنایی دارم حتی در جستجوی که کردم به دستور !xcopy هم برخوردم ولی این دستور ها فایل رو کپی می کنند می دونید چیه مشکل من این هست که جداولم رو بر اساس سال طبقه بندی کرده و حال یا باید از یک سال خاص پشتیبان بگیرم یا از کل پوشه ای که بانک هام در اون هست فقط می خواستم مطمئن بشم که ایا دستوری برای این هست که من پوشه را کپی کنم یا این که باید همین طوری که شما در بالا ذکر کرده اید این کار را بکنم
rahro
شنبه 03 اردیبهشت 1390, 07:17 صبح
اين رو پيشنهاد نميکنم فقط فکر ميکنم در حال حاضر ميتونه مشکل شما رو حل کنه :
mySo="E:\myFolder"
myDe="C:\myFolder"
IF ! DIRECTORY(myDe)
MD &myDest
ENDIF
! xcopy &mySou &myDe /Y/S
اگر ميخواي از نمايش کپي هم جلوگيري کني از سويچ n/ استفاده کن و اگر ميخواي دايرکتوري و زير شاخه هاي آن هم کپي شوند از سويچ e/
همچنين اگر ميخاي پنچره داس به هنگام کپي به حداقل برسه قبل xcopy از سويچ 2/ استفاده کن و نيز اگر دايرکتوري مقصد وجود ندارد از سويچ i/ در انتهاي فرمان .
rahro
شنبه 03 اردیبهشت 1390, 07:37 صبح
راه ديگه هم استفاده از اين دستوراته :
oShell = CREATEOBJECT("Shell.Application")
FromFolder = oShell.NameSpace("C:\Mobtaker")
ToFolder = oShell.NameSpace("d:")
ToFolder.CopyHere(FromFolder)
googoli
شنبه 10 اردیبهشت 1390, 23:09 عصر
با سلامی دوباره
من با راهنمایی شما اساتید گرامی این کد رو برای پشتیبان گیری نوشتم ولی نمی دونم چرا شرط من هر دفعه اجرا میشه و بهم گیر میده
main= SYS(5)+SYS(2003)+'\data\&_year'
_dir=GETDIR('','ãÓíÑ ãæÑÏ äÙÑ ÎæÏ ÑÇ ÈÑÇí ÑÝÊä ÔÊíÈÇä ÇäÊÎÇÈ ˜äíÏ','ÑÝÊä ÔÊíÈÇä')
IF !DIRECTORY('_dir+_year')
MKDIR &_dir&_year
COPY FILE &main to '&_dir&_year'
ELSE
COPY FILE &main to '&_dir&_year'
ENDIF
همانطور که می دانید شرط باید زمانی اجرا بشه که پوشه ای با اون نام وجود نداشته باشه ولی زمانی که پوشه وجود داره شرط اجرا میشه و به دستور ایجاد دایرکتوری گیر میده لطفا من رو راهنمایی کنید
rahro
یک شنبه 11 اردیبهشت 1390, 07:14 صبح
سلام
آنچه که از کد نويسي شما من ميتونم استنباط کنم اينه که متغير main داراي مسير دايرکتوري مبداء شماست و البته ميشه حدث زد که متغير year_ پوشه سال مورد نظر شما در اين مسير است. اگر چنين باشه فرمان کپي شما مشکل داره چون در فرمان کپي شما نام فايل مورد نظر شما مشخص نشده است .
غير اين بعد از اينکه مسير مورد نظر کاربر را توسط فرمان Getdir از کاربر گرفتيد ، اگر ميخواهيد از مسير مورد نظر به اضافه سال يک دايرکتوري ايجاد کنيد فکر ميکنم اين فرمان کارآمدتر باشد.
_year='1389'
main= SYS(5)+SYS(2003)+'\data\'+_year
_dir=GETDIR(main,'æÔå ãæÑÏ äÙÑ ÎæÏ ÑÇ ÇäÊÎÇÈ ˜äíÏ','ÊÚíä ãÓíÑ',64)
_dir=ALLTRIM(_dir)+_year
IF !directory(_dir)
MD(_dir)
ENDIF
يه توصيه هم برات دارم و اون اينکه خودت را عادت بده که از "_" براي تعريف متغير خود استفاده نکني .
googoli
یک شنبه 11 اردیبهشت 1390, 11:06 صبح
با تشکر از استاد گرامی اقای رهرو
من در دستور کپی مخصوصا اسم پوشه مورد نظرم رو اوردم چون من این حالت رو امتحان کردم اگر این کار رو انجام بدم کل محتویات یک پوشه رو به مسیر که کاربر انتخاب می کنه انتقال میده فقط کافی هست که من در اونجا پوشه سال مورد نظرم رو انتخاب کنم و بعد با استفاده از دستور کپی فایل تمام دیتای خودم رو به اونجا انتقال بدم و متغیر سالم هم یه متغیر عمومی هست که با ورود به سیستم از تاریخ سیستم گرفته میشه
یه سوال دیگه برام پیش اومده این هست که چطور می تونم از پیغام ریپلیس کردن روی فایل های موجود در داخل پوشم جلوگیری کنم ؟
googoli
یک شنبه 11 اردیبهشت 1390, 12:06 عصر
یه سوال دیگه
من چطور می تونم یه بک اسلش رو از اخر ادرسم پاک کنم؟
rahro
دوشنبه 12 اردیبهشت 1390, 07:25 صبح
سلام
شما درست ميگيد من تا حالا روي اين موضوع دقت نکرده بودم ، حتي ميتونيد از سوئچ *.* نيز به همراه اين فرمان استفاده کنيد .
براي عدم ريپليس ، ميتوني فرمان SET SAFETY OFF رو اجرا کني و يا قبلش با فرمان Delte file و استفاده از سويچ *.* تمام فايلهاي مبداء رو حذف کني هر چند من در کل اين روش کپي پشتيبان را نمي پسندم
براي حذف بک اسلش هم از فرمان Rat استفاده کن به اينصورت:
xpath='h:\Mobtaker\rahro\'
IF RIGHT(xpath,1)=='\'
xpath=SUBSTR(xpath,1,RAT('\',xpath)-1)
ENDIF
googoli
دوشنبه 12 اردیبهشت 1390, 10:00 صبح
باز هم تشکر از راهنمایی های شما
چون من تازه کار هستم خوب سوادم بیشتر از این روش نیست اگر یک روش پیشنهاد بدید که من روش کار کنم یا این که یه روش به عنوان نمونه برام بذارید تا یاد بگیرم ممنون میشم
rahro
دوشنبه 12 اردیبهشت 1390, 10:22 صبح
من جسارتي نکردم فقط نظرم رو ارائه دادم
69427
اين برنامه رو قبلا فکر ميکنم استاد بزرگوار جناب کياحيدري ارائه داده بود من خودم از روي اين الگو برداري کردم و به صورتي کاملا متفاوت در پروژهام دارم ازش استفاده ميکنم .
اميدوارم به دردتون بخوره
googoli
دوشنبه 12 اردیبهشت 1390, 20:09 عصر
من هم نگفتم شما جسارت کردید من گفتم چون من تازه وارد دنیای برنامه نویسی و فاکس پرو شدم شاید خیلی از الگوریتم هام ایراد داشته باشه ولی خوب خلاصه ادم وقتی می خواد به کاری که دوستش داره برسه باید از یه جایی شروع کنه دیگه من فقط از شما راهنمایی خواستم همین
rahro
سه شنبه 13 اردیبهشت 1390, 06:54 صبح
من خودم هنوز يک کاربر مبتديم ، با اين تفاوت که به نظر ميرسه کمي از شما زودتر شروع کردم . من صادقانه بگويم آنچه دارم از اين انجمن فاکس و کمک اساتيدي همچون توکل و حيدري کيا و جناب حسين زاده (بي نياز) بوده.
من فقط دارم راهنمائيهاي ديروز دوستان همين انجمن رو امروز براي شما کپي ميکنم.
اميد که موق باشيد
k_yk1987
سه شنبه 03 دی 1392, 08:37 صبح
من جسارتي نکردم فقط نظرم رو ارائه دادم
69427
اين برنامه رو قبلا فکر ميکنم استاد بزرگوار جناب کياحيدري ارائه داده بود من خودم از روي اين الگو برداري کردم و به صورتي کاملا متفاوت در پروژهام دارم ازش استفاده ميکنم .
اميدوارم به دردتون بخوره
میشه راجع به این برنامه یک مقداری توضیح بدهید دوست عزیز ؟؟؟
با تشکر
beh-meh
چهارشنبه 27 خرداد 1394, 10:53 صبح
سلام من یه سوالی دارم. میخواستم از یکی از درایوهای سیستم روزانه بکاپ بگیرم. با دستور xcopy امکان این کار هست اما میخوام به صورت خودکار فایلهاییی که روزهای قبل بکاپ گرفته را دیگر کپی نکنند.
تشکر
javad_1349
چهارشنبه 31 تیر 1394, 11:03 صبح
سلام از تجربیات اساتید استفاده کردم
بنده در نرم افزارهایم از فایلهای فشرده سازی استفاده می کنم باید چند نکته را خاطرنشان کنم اول اینکه پشتیبان گیری را در زمان خروج از نرم افزار بگذارید چون درهرصورت دیتا بیس درگیره
دوم اینکه شما سعی کنید مسیر برنامه ها را درون یک تیبل ذخیره نمایید بهتره فولدر مقصد تاریخ همان روز باشه
سوم بطور کلی می تونید غیر از استفاده از فرمان Xcopy از فرمان Rename در حالت کپی پوشه ها استفاده نمایید
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.