اگر علاقه به یادگیری خط فرمان ویندز (Command Prompt) دارید، بهتر است همین حالا دست به اقدام بزنید. آموزش خط فرمان ویندوز به صورت 100% تضمینی با 7 روز گارانتی بازگشت وجه بدون قید و شرط و 59% تخفیف ویژه (اطلاعات بیشتر…)

کدهای برگشتی در فایل Batch

کدهای برگشتی در فایل Batch یا نتایج برنامه های اجرا شده

یکی از مهمترین مباحث در Batch Programming کدهای برگشتی یا Return Code میباشد. کدهای برگشتی به شما کمک میکنند تا از نتیجه دستورات و برنامه های اجرا شده آگهی پیدا کنید. در ادامه تی ام ال منیجر را در آموزش کدهای برگشتی در فایل Batch دنبال کنید.

زمانیکه یک دستور به درستی و با موفقیت اجرا میشود کد برگشتی آن صفر است ولی در صورتی که عملکرد آن با مشکل مواجه شود کد برگشتی آن غیر از عدد صفر میباشد. (عدد 1 یا بالاتر)

بررسی کدهای برگشتی در فایل Batch

یکی از Variable های پر اهمیت محیطی %ERRORLEVEL% نام دارد. %ERRORLEVEL% شامل آخرین کد برگشتی از برنامه یا Script های اجرا شده میباشد. اکثر دستورات خط فرمان مثل Echo و IF و Set مقدار موجود %ERRORLEVEL% را به خاطر میسپارند.

مرسوم ترین تکنیک برای بررسی عملکرد کدهای برگشتی استفاده از اپراتور NEQ یا Not Equal To در دستور IF میباشد.

IF %ERRORLEVEL% NEQ 0 (

    Echo Do Something Here to Address the Error

)

در دستور بالا گفته شده اگر عملکرد برنامه یا Script اجرا شده قبلی با خطا مواجه شود پیام Do Something Here to Address The Error را نمایش بده.

یکی دیگر از راههای که میتوان صحت عملکرد برنامه قبلی را بررسی نمود:

IF ERRORLEVEL 1

    Echo Do Something Here to Address the Error

)

استفاده نمودن از جمله ERRORLEVEL 1 صحیح میباشد. اما مشکل آن این است که شاید برنامه اجرا شده عدد منفی یا مثبت را ارسال کند. معمولا کمتر برنامه ای موجود میباشد که کلیه کدهای بازگشتی را سند کرده باشد به همین خاطر استفاده کردن از NEQ 0 بهتر از باقی روشها در خطا یابی میباشد.

برای بررسی نمودن یک کد مشخص میتوانید آن را با EQU وارد کنید. مثلا میتوانید یک برنامه یا Script را اجرا کنید و کد خروجی 9009 را بررسی کنید.

Program.exe

IF %ERRORLEVEL% EQU 9009 (

                                       ECHO Error – Program.exe Not Found in Your Path

)

در دستور بالا گفته شده اگر برنامه Program.exe با کد 9009 مواجه شد پیام Program.exe Not Found In Your Path را نمایش بده.

اجرای شرطی دستورات با استفاده از کد برگشتی

شما به سادگی میتوانید یک دستور را طبق شرایط مشخص شده با کدهای برگشتی اجرا کنید. مثلا اگر برنامه قبل به درستی کار خود را انجام داد باشد دستور X اجرا شود.

یک راه ساده و سریع برای اجرای یک دستور در صحت عملکرد دستور قبل استفاده از دو علامت && میباشد. به مثال ریز توجه کنید:

Program.exe && Echo Your Program Work Successfully

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

برای تشخیص کارکرد صحیح از دو علامت && استفاده میشود ولی برای تشخیص مشکل از دو علامت || استفاده میشود. به مثال زیر توجه کنید:

Program.exe || Echo Program.exe Failed with Return Code %ERRORLEVEL%

یکی از روشهای ساده برای جلوگیری از اشتباه استفاده از دستور Exit به همراه پارامتر /B میباشد. (این دستور برای خروج از فایل Batch مورد استفاده قرار میگیرید نه اجرای عادی CMD)  پس از پارامتر /B باید کد مشخص کننده خطا را درج کنید. برای مثال:

Program.exe || Exit /B 1

اگر بخواهم یک روش دیگر همانند تکنیک بالا را برایتان توضیح دهم استفاده از دستور goto به همراه برچسب :EOF میباشد. EOF از سه کلمه End Of File تشکیل شده و باعث خروج یا بسته شدن فایل Batch میشود. به مثال توجه کنید:

Program.exe || GOTO :EOF

چند نکته برای کدهای برگشتی در فایل Batch

همیشه سعی کنید از کد صفر برای بررسی عملکرد موفق برنامه ها استفاده کنید. چرا که معمولا دیگر برنامه های فراخوان از IF ERRORLEVEL 1 برای بررسی فایل Batch استفاده میکنند.

یکی دیگر از کارهای که باید انجام دهید استفاده نمودن از دستور SET برای سند کردن کدهای برگشتی در فایل Batch میباشد

SET /A ERROR_HELP_SCREEN=1

SET /A ERROR_FILE_NOT_FOUND=2

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


اگر نیاز به نسخه PDF مقاله های سایت دارید به شما پیشنهاد میکنم حتما در سایت ثبت نام کنید تا به صورت رایگان آنها را دریافت کنید. ورود به سایت | ثبت نام در سایت


آموزش مبتدی تا حرفه ای ساخت فایل Batch

فصل اول: مبانی پایه Batch Programming

فصل دوم: کدهای برگشتی یا فایل Batch یا Return Code

فصل سوم: ورودی ها و خروجی های STDIN , STDOUT , STDERR

فصل چهارم: معرفی و ساخت Variable ها با دستور SET

فصل پنجم: اجرای شرطی برنامه ها با دستور IF

فصل ششم: ساخت منو در فایل Batch (با استفاده از دستور IF و SET)

فصل هفتم: دستور FOR برای ساخت حلقه

فصل هشتم: نکات تکمیلی در ساخت فایل Batch (بررسی کلی)



اگر علاقه به یادگیری خط فرمان ویندز (Command Prompt) دارید، بهتر است همین حالا دست به اقدام بزنید. آموزش خط فرمان ویندوز به صورت 100% تضمینی با 7 روز گارانتی بازگشت وجه بدون قید و شرط و 59% تخفیف ویژه (اطلاعات بیشتر…)
محمد برغمدی

محمد برغمدی

امام علی علیه السلام: با مردم آنگونه معاشرت كنيد، كه اگر مرديد بر شما اشك ريزند، و اگر زنده مانديد، با اشتياق سوي شما آيند.

4 دیدگاه برای «کدهای برگشتی در فایل Batch»

  • آذر 22, 1395 در t 23:46
    Permalink

    سلام میشه ایراداین دستور رو بگی بهم
    @echo off
    Title Welcom To Simple Mover
    Color a

    set /p pt = %Cd%
    echo %pt%

    pause
    هر کاری میکنم خروجی ECHO is On میده در حالی که سورس کد میگه همش مسیر داعم داشته باشه ینی مسیر جاری رو ریختم تو یه متغیر بعد اونو چاپ کردم بعد اینکه اینتر میزنم میاد بیرون
    ممنون 🙂

    پاسخ دادن
    • محمد برغمدی
      آذر 23, 1395 در t 05:13
      Permalink

      سلام مهدی جان
      چند تا اشباه داشتی
      1- بعد از دستور set از پارامتر /p استفاده کرده بودی که برای وارد کردن محتوای Variable به صورت دستی استفاده میشه (مثلا ساخت منو)
      2- بعد از نام Variable و علامت مساوی و محتوای Variable فاصله اضافی گذاشتی
      نسخه ویرایش شده فایل Batch شما:

      @ECHO OFF
      Title Welcome to the Mover
      Color a
      set pt=%Cd%
      echo %pt%
      pause

      پاسخ دادن
  • آذر 22, 1395 در t 23:49
    Permalink

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

    پاسخ دادن
    • محمد برغمدی
      آذر 23, 1395 در t 05:17
      Permalink

      مسیر های که مشخص میکنید رو باید در بین علامت (“”) Quotation Mark قرار بدید تا در صورت وجو نام های چند کلمه ای قعطی در بین آدرسهای مشخص شده به وجود نیاد.
      برای اینکه بتونم اطلاعات بیشتری رو بدم باید محتوای فایل batch رو ببینم 🙂
      موفق باشید!

      پاسخ دادن

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *