صفحه 3 از 14 نخستنخست 123456713 ... آخرینآخرین
نمایش نتایج: از شماره 21 تا 30 , از مجموع 139

موضوع: دستورات فایلهای Batch

  1. #21
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,165
    سپاس
    4,687
    سپاس گذاری شده :12,905 بار در 2,179 پست
    قدرت امتیاز دهی
    39432
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    نقل قول نوشته اصلی توسط سهند نمایش پست ها
    استاد یه سوال داشتم
    ما در داخل سی دی ویندوز sources\$oem$\$$\Setup\Scripts یه فایل SetupComplete.cmd داریم که با اجرا شدن اون یه تعداد نرم افزار نصب میشوند ودر ادرس sources\$oem$\$$\Setup\xxx یه فایلی به نام install.cmd داریم ومیخواهیم که در سطر سوم فایل SetupComplete.cmd یه فرمانی برای اجرای فایل install.cmd هم بنویسیم با توجه به ادرس فایل install.cmd فرمان اجرای این فایل در سطر سوم SetupComplete.cmd چطوری خواهد بود البته در اول همه دستورات موجود در فایل SetupComplete.cmd یه چیزی هم هست که با این نوشته شروع میشوند

    DPO~%
    اگر فایل Install.cmd در داخل پوشه sources\$oem$\$$\Setup\xxx قرار دارد
    اول در ابتدای فایل setupcomplete.cmd بعد از سطر Echo off @ دستور زیر را بنویس:

    کد:
    set AA=%WINDIR%\Setup\xxx
    سپس در سطر مورد نظر دستور زیر را بنویس که فایل Install.cmd را اجرا کند:

    کد:
    CALL %AA%\Install.cmd



  2. 5 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  3. #22
    کاربر فعال
    یاد بگیریم وبه دیگران هم یاد بدیم
    تاریخ عضویت
    Nov 2013
    محل سکونت
    تبریز
    نوشته ها
    530
    سپاس
    1,463
    سپاس گذاری شده :1,789 بار در 536 پست
    حالت من : Bitafavot
    قدرت امتیاز دهی
    4409
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    استاد در داخل پوشه scripts در کنار فایل setupcomplete.cmd حدود 6تا نرم افزار هستند که که توسط همین فایل setupcomplete.cmd اجرا میشوند وهمه سطرها ودستورات با DPO~% شروع میشوندو فایل setupcomplete.cmd اینطوری شروع میشه ایا با دستوری که شما دادید مشکلی ایجاد نمیشه

    @ECHO OFF
    Set WorkDir=%~dp0
    -----------------------------------------------------------------------------------------------------------------------------------
    مسیر فایل setupcomplete.cmd
    sources\$oem$\$$\Setup\Scripts
    -----------------------------------------------------------------------------------------------------------------------------------
    مسیر فایل Install.cmd
    sources\$oem$\$$\Setup\XXX

  4. 4 کاربر برای این پست سودمند از سهند عزیز سپاس گذاری نموده اند:


  5. #23
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,165
    سپاس
    4,687
    سپاس گذاری شده :12,905 بار در 2,179 پست
    قدرت امتیاز دهی
    39432
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    نگران نباش.



  6. 4 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  7. #24
    کاربر فعال
    یاد بگیریم وبه دیگران هم یاد بدیم
    تاریخ عضویت
    Nov 2013
    محل سکونت
    تبریز
    نوشته ها
    530
    سپاس
    1,463
    سپاس گذاری شده :1,789 بار در 536 پست
    حالت من : Bitafavot
    قدرت امتیاز دهی
    4409
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    استاد در مورد اشکال مورد استفاده در فایلهای بچ توضیحاتی میدهید

  8. 4 کاربر برای این پست سودمند از سهند عزیز سپاس گذاری نموده اند:


  9. #25
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,165
    سپاس
    4,687
    سپاس گذاری شده :12,905 بار در 2,179 پست
    قدرت امتیاز دهی
    39432
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

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



  10. 4 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  11. #26
    کاربر فعال
    یاد بگیریم وبه دیگران هم یاد بدیم
    تاریخ عضویت
    Nov 2013
    محل سکونت
    تبریز
    نوشته ها
    530
    سپاس
    1,463
    سپاس گذاری شده :1,789 بار در 536 پست
    حالت من : Bitafavot
    قدرت امتیاز دهی
    4409
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    استاد منظورم تقریبا اینا هست یا چیزاهای مشابه دیگه که تو بعضی فایلهای بچ هستند
    =%~dp0

  12. 4 کاربر برای این پست سودمند از سهند عزیز سپاس گذاری نموده اند:


  13. #27
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,165
    سپاس
    4,687
    سپاس گذاری شده :12,905 بار در 2,179 پست
    قدرت امتیاز دهی
    39432
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    دستور Set
    ======

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

    1. فرض کنید که سه تا فایل بنام های AA.exe و BB.exe و CC.exe داخل پوشه C:\Windows\system32\XXX\YYY\ZZZ
    قرار دارند و ما میخواهم این سه تا فایل را بترتیب توسط یک فایل Batch اجرا کنیم.
    با مواردیکه تاکنون یاد گرفته ایم باید دستورات زیر را بنویسیم:

    C:\Windows\system32\XXX\YYY\ZZZ\AA.exe
    C:\Windows\system32\XXX\YYY\ZZZ\BB.exe
    C:\Windows\system32\XXX\YYY\ZZZ\CC.exe


    می بینید که هرچقدر تعداد فایل ها بیشتر باشند ، فایل Batch ما پیچیده تر شده و امکان اشتباه هم زیاد خواهد شد.
    ولی با استفاده از دستور set میتوانیم دستور بالا را بصورت ساده و مفهوم زیر در بیاوریم:

    کد:
    set AA=C:\Windows\system32\XXX\YYY\ZZZ
    %AA%\AA.exe
    %AA%\BB.exe
    %AA%\CC.exe
    می بینید که این فایل Batch نسبت به قبلی چقدر ساده تر و مفهوم تر شده است.ما در بالا در سطر اول با استفاده
    از دستور set به برنامه گفته ایم که هر جا عبارت AA را ببیند آن را C:\Windows\system32\XXX\YYY\ZZZ در نظر
    بگیرد
    و بعد درسطور بعدی دیگر عبارت C:\Windows\system32\XXX\YYY\ZZZ را ننوشته و بجایش عبارت AA را نوشته ایم.
    البته با این فرق که AA باید بین دو علامت %% نوشته شود.
    عبارت AA را یک متغیر می نامند که در این مثال مقدارش برابر عبارت C:\Windows\system32\XXX\YYY\ZZZ است.

    ما در ابتدای این فایل Batch یک متغیر یعنی AA و مقدار آن را مشخص کردیم. میتوانید بجای عبارت AA از عبارات دلخواه
    خودتان استفاده کنید. میتوانید چندین متغیر را در اول فایل Batch معرفی کنید.

    2. گاهی میخواهید فرضا" سوالی از کاربر پرسیده و بعد بر اساس جوابی که کاربر میدهد کار یا کار های بخصوصی را
    انجام دهید.
    در این جا میتوانید از دستور set بهمراه سویچ P/ استفاده نمائید. به مثال زیر توجه کنید:
    بیائید یک برنامه بسیار ابتدائی را توسط فایل Batch طراحی کنیم.
    فرض کنید که میخواهیم برنامه ای طراحی کنیم که اول منوئی به کاربر نشان داده و در آن به کاربر بگوید که یکی از
    سه برنامه نشان داده شده ( در این مثال notepad ، MSPait و یا Calculator ) را انتخاب کند تا اجرا شود. و سپس
    بسته به این که کاربر کدام برنامه را انتخاب کرده ، همان برنامه ، اجرا شود.

    اول باید منوئی درست کرده و به کاربر نشان دهیم که کاربر بتواند بفهمد چکار باید بکند.
    منویمان را میتوانیم توسط دستور ECHO که قبلا" یاد گرفتیم درست کنیم. من برای این مثال نمونه زیر را درست کردم
    لذا شروع میکنیم
    1. برنامه notepad را باز کرده و در آن سطور زیر را تایپ کرده و سپس آن را با نام فرضا" Run.cmd ذخیره کنید:

    کد:
    @ECHO off
    cls
    :Menu
    ECHO.
    ECHO.
    ECHO    @@@@@@@@@@@@@@@@@@@@@@
    ECHO.   @                    @
    ECHO    @  1. Run notepad    @
    ECHO    @  2. Run MSPait     @
    ECHO    @  3. Run Calculator @
    ECHO    @  4. Exit           @
    ECHO    @                    @
    ECHO    @@@@@@@@@@@@@@@@@@@@@@
    ECHO.
    ECHO.
    در این منو کاربر چهار تا گزینه خواهد دید .

    2. حالا باید دو تا کار انجام بدهیم ، اول اینکه به کاربر بگوییم که یکی از گزینه ها را انتخاب کند و دوم اینکه کاری کنیم
    که گزینه ای که کاربر انتخاب کرده اجرا شود.
    برای اینکار از دستور set بهمراه سویچ P/ استفاده میکنیم. بدینطریق که سطر زیر را به فایل Run.cmd اضافه میکنیم:

    کد:
    set /p ABC=Type the Program number to Run:
    با دستور بالا کاربر فقط عبارت "Type the Program number to Run" را مشاهده خواهد کرد. که به کاربر گفته شماره
    برنامه مورد نظرش را انتخاب کند تا برنامه اجرا شود.

    3. حالا یکی از چند حالت زیر اتفاق خواهد افتاد:
    __ کاربر یکی از شماره های 1 تا 4 را که در منو نشان داده شده تایپ کرده و کلید Enter را فشار می دهد.
    __ ممکن است کاربر بخواهد اذیت کند و هیچ شماره ای را انتخاب نکرده ولی کلید Enter را فشار دهد.
    __ ممکن است شماره ای بغیر از اعداد نشان داده شده ( 1 تا 4 ) انتخاب کرده و Enter را فشار دهد.

    ما باید برای هر حالتی که ممکن است اتفاق بیفتد برنامه ریزی داشته باشیم لذا بروش زیر عمل میکنیم

    تا جلسه بعد



  14. 5 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  15. #28
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,165
    سپاس
    4,687
    سپاس گذاری شده :12,905 بار در 2,179 پست
    قدرت امتیاز دهی
    39432
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    در جلسه قبل منوی ساده ای با چهار گزینه طراحی کرده و به کاربر گفتیم که یکی از 4 گزینه موجود را انتخاب کند
    تا اجرا شود
    حال بقیه ماجرا:

    در سطر بعدی فایل Batch دستور زیر را می نویسیم:

    کد:
    if '%ABC%'=='' ECHO You  did not enter valid number ,please try again
    در این جا فرض کرده ایم که کاربر هیچ شماره ای را انتخاب نکرده و فقط کلید Enter را فشار داده است. حالا ببینیم
    با این دستوری که دادیم چه اتفاقی می افتد.
    در سطر قبل از این سطر ، از دستور set بهمراه p/ استفاده کردیم ، در ادامه دستور عبارت =ABC را نوشتیم و بعد از
    علامت = عبارت : Type the Program number to Run را نوشتیم.
    این بدان معنی است که برنامه دو تا کار باید انجام دهد:
    1. عبارت بعد از مساوی را به کاربر نشان دهد.
    2. عکس العمل کاربر را هر چه که هست درون متغیری بنام ABC ذخیره کند.
    یعنی با دستور فوق یک متغیر بنام ABC تعریف کرده ایم که برنامه در داخل آن عکس العمل کاربر را ذخیره خواهد کرد.
    فرضا" اگر کاربر کلید 1 را تایپ کرده و بعد کلید Enter را فشار دهد برنامه مقدار ABC را برابر 1 ذخیره خواهد کرد.

    حالا میخواهیم از این متغیر استفاده کنیم . قبلا" گفتم که برای استفاده از متغیر باید نام متغیر را ما بین دو علامت %%
    قرار دهیم.
    در بالا گفتم که کاربر هیچ شماره ای را انتخاب نکرده و فقط کلید Enter را فشار داده است یعنی با شرح داده شده ،
    برنامه ، در داخل متغیر ABC ، مقدار " هیچ چیز" را ذخیره کرده است.
    بنابر این در اینجا از دستور شرطی IF استفاده کرده و گفته ایم که اگر داخل متغیر ABC خالی باشد ، یک پیغام نشان
    داده و در آن بگوید "شما عدد درستی وارد نکردید ، لطفا" دوباره وارد کنید".

    شرط خالی بودن مقدار متغیر را بصورت زیر نشان داده ایم:

    کد:
    '%ABC%'==''
    همانطور که می بینید بعد از دو تا علامت مساوی مقداری در داخل دو علامت ،، وجود ندارد.

    حال دستور بعدی را باید بنویسیم . این دستور (که در سطر زیر مشاهده می کنید) ،مثل دستور قبلی است با این فرق
    که در اینجا مقدار متغیر ABC خالی نبوده و برابر 1 در نظر گرفته شده است:

    کد:
    if '%ABC%'=='1' goto PA
    همانطور که می بینید در این دستور با استفاده از دستور goto که قبلا" در موردش صحبت کردیم ، به برنامه گفته ایم
    که اگر کاربر عد 1 را وارد کرده باشد ، برود و دستورات زیر سطر PA را اجرا کند.

    حالا باید سطر PA را درست کرده و زیر آن دستور یا دستوراتی که باید اجرا شود را می نویسیم .در این مثال که میخواهیم
    اگر کاربر کلید 1 را فشار دهد برنامه notepad اجرا شود ، دستورات زیر را می نویسیم:

    کد:
    :PA
    notepad.exe
    و همین طور برای دیگر حالات هم دستورات لازم را می نویسیم که در نهایت برای این مثال خواهیم داشت:

    کد:
    @ECHO off
    cls
    :Menu
    ECHO.
    ECHO.
    ECHO    @@@@@@@@@@@@@@@@@@@@@@
    ECHO.   @                    @
    ECHO    @  1. Run notepad    @
    ECHO    @  2. Run MSPait     @
    ECHO    @  3. Run Calculator @
    ECHO    @  4. Exit           @
    ECHO    @                    @
    ECHO    @@@@@@@@@@@@@@@@@@@@@@
    ECHO.
    ECHO.
    set /p ABC=Type the Program number to Run:
    if '%ABC%'=='' ECHO You  did not enter valid number ,please try again
    if '%ABC%'=='1' goto PA
    if '%ABC%'=='2' goto PB
    if '%ABC%'=='3' goto PC
    if '%ABC%'=='4' goto end
    ECHO.
    goto Menu
    :PA
    notepad.exe
    goto end
    :PB
    mspaint.exe
    goto end
    :PC
    calc.exe
    goto end
    :end
    exit
    مثال را تست کنید و درباره اش فکرکنید

    تابعد



  16. 5 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  17. #29
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,165
    سپاس
    4,687
    سپاس گذاری شده :12,905 بار در 2,179 پست
    قدرت امتیاز دهی
    39432
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    دوست ارجمندم (سهند) چندین بار در رابطه با اینکه عبارت dp0~% چیست و به چه منظوری در فایل های Batch
    بکار میرود سوال کرده که من هنوز جواب واضحی به ایشان نداده ام.
    جواب نداده ام چون توضیح مطلب تا اینجای بحثمان مقداری گیج کننده بود و نمیشد در یکی دو سطر توضیح داد. امروز
    در رابطه با همین مطلب بحث می کنیم.
    ما بعضی از موارد استفاده دستور set را در پست های قبلی مطالعه کردیم.
    ما دیدیم که این دستور اطلاعاتی را در یک متغیر نگهداری میکند و ما از اطلاعات ذخیره شده درون این متغیر استفاده
    میکنیم.

    موقعیکه ما میخواهیم توسط یک فایل Batch برنامه ای را اجرا کنیم ، فایل Batch باید دقیقا" محلی را که برنامه قرار
    گرفته بداند و گرنه برنامه اجرا نخواهد شد.
    فرض کنید که میخواهیم برنامه AA.exe را که داخل پوشه D:\Windows\system32\Apllications\WWW\XXX\TTT\ZZZ
    قرار دارد توسط یک فایل Batch که در دسکتاپ قرار دارد اجرا کنیم.
    معلوم است که در حالت ابتدائی باید دستور زیر را در فایل Batch تایپ کنیم:

    D:\Windows\system32\Apllications\WWW\XXX\TTT\ZZZ\A A.exe

    معلوم است که این آدرس خیلی طولانی است و مخصوصا" اگر چندین فایل مثلا" 20 فایل در آدرس فوق باشند و ما
    بخواهیم بترتیب همه آن ها را اجرا کنیم ، نوشتن این آدرس طولانی برای تک تک آن ها هم بسیار خسته کننده شده
    و هم احتمال اشتباه تایپی وجود دارد و هم فایل Batch درست شده بسیار گیج گننده و گنگ خواهد بود.

    و نیز قبلا" گفتم که در اینگونه موارد بهتر است از دستور set استفاده کنیم تا هم کارمان ساده تر شود و هم فایل Batch
    نهائی واضح تر باشد.
    و گفتم که به این طریق عمل میکنیم که اول در یک سطر دستوری مثل دستور زیر را در ابتدای فایل Batch می نویسیم:

    set ABCD=D:\Windows\system32\Apllications\WWW\XXX\TTT\ ZZZ

    با این دستور ما یک متغیر بنامABCD درست کرده و به فایل Batch گفتیم که منبعد هر جا متغیری بنام ABCD دید ،آن
    را آدرس بالا بداند.
    حال که فرضا" میخواهیم فایل AA.exe را در آدرس مورد بحث اجرا کنیم ، دیگر لازم نیست که دستور دراز بالا را بنویسم
    و کافی است که بجای آن از عبارت زیر استفاده کنیم:

    کد:
    %ABCD%\AA.exe
    حالا فایل Batch موقع اجرا وقتی به عبارت ABCD برسد که ما بین دو علامت %% قرار گرفته می فهمد که ABCD
    یک متغیر است و فوری مقدار این متغیر را بجای عبارت ABCD گذاشته و فایل مورد نظر را از محل مورد نظر اجرا میکند.

    شما میتوانید در ابتدای فایل Batch با استفاده از دستور set هر تعداد متغیر برای آدرس های مختلف درست کنید.

    گاهی آدرس محل کار ما متفاوت است و ما نمیتوانیم یک متغیر ثابت معرفی کنیم
    فرض کنید شما یک پوشه ای بنام XXX دارید که داخل آن تعدادی فایل های مختلف وجود دارند و شما میخواهید که
    تمام این فایل ها را با دستورات یک فایل Batch که آن هم داخل همین پوشه هست اجرا کنید.

    مهم نیست که پوشه XXX در کدام محل بوده باشد ویا حتی نامش چه چیزی باشد ، مهم این است که ما باید به فایل
    Batch بگوئیم که تک تک فایل ها را باید از همین پوشه که خودش قرار دارد پیدا کرده و اجرا کند.

    در اصطلاح کامپیوتر باید به فایل Batch بگوئیم که فایل ها را از Current Directory پیدا و اجرا نماید.
    یک روش رایج برای اینکار این است که در ابتدای فایل Batch متغیری بصورت زیر معرفی کنیم:

    Set WorkDir=%~dp0

    خاصیت این دستور این است که فایل Batch بعد از این سطر هر جا عبارت عبارت dp0~% را ببیند خواهد فهمید که
    منظور همین محلی است که خودش قرار دارد.
    برای مثال اگر ببیند دستور زیر نوشته شده:

    کد:
    Set WorkDir=%~dp0
    
    %~dp0"SBC.exe"
    فوری خواهد فهمید که فایل SBC.exe در کنار خودش قرار دارد و آن را اجرا خواهد کرد.

    اگر مطلب گیج کننده و نامفهوم است یادداشت بگذارید تا بیشتر توضیح دهم.



  18. 5 کاربر برای این پست سودمند از Magsoud عزیز سپاس گذاری نموده اند:


  19. #30
    کاربر فعال
    یاد بگیریم وبه دیگران هم یاد بدیم
    تاریخ عضویت
    Nov 2013
    محل سکونت
    تبریز
    نوشته ها
    530
    سپاس
    1,463
    سپاس گذاری شده :1,789 بار در 536 پست
    حالت من : Bitafavot
    قدرت امتیاز دهی
    4409
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    1-استاد پس اگر درست فهمیده باشم Set WorkDir=%~dp0 یعنی اینکه به فایل بچ دستور میدهیم کاری که فایل بچ انجام میخواهی بدی همشون در این پوشه ای هستند که خودت توش قرار داری

    2- این دستور بعد Echo off @ در سطر دوم قرار دارد واگر بخواهیم که فایل بچ بفهمد که به ترتیب پوشه های دیگری هم هستند که به وقتش اونا رو هم اجرا کنه باید به ترتیب در سطر سوم و چهارم هم بهش این دستور رو بدهیم که فایلها کجا هستند منتها با این تفاوت که بجایش Set WorkDir=xxx بذاریم

  20. 4 کاربر برای این پست سودمند از سهند عزیز سپاس گذاری نموده اند:


صفحه 3 از 14 نخستنخست 123456713 ... آخرینآخرین

علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

http://www.worldup.ir/