کدهای برگشتی در فایل 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 (بررسی کلی)


به نظر شما ممکنه کسی با استفاده از کلید های زیر این مطلب رو به اشتراک بذاره؟
محمد برغمدی

محمد برغمدی

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

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

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

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

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

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

    پاسخ
    • محمد برغمدی
      آذر 24, 1395 در 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

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

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

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

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

      پاسخ

پاسخ دهید

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