کدهای برگشتی در فایل 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
    پیوندیکتا

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

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

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

    پاسخ
    • آذر 24, 1395 در05:13
      پیوندیکتا

      سلام مهدی جان
      چند تا اشباه داشتی
      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
    پیوندیکتا

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

    پاسخ
    • آذر 24, 1395 در05:17
      پیوندیکتا

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

      پاسخ

پاسخ دهید

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