اگر تا به حال حدس نمی زدید، فایل های دسته ای می توانند به عنوان یک نوع ابتدایی زبان برنامه نویسی عمل کنند. یکی از مواردی که زبان های برنامه نویسی مدرن ارائه می دهند، توانایی ماژولار کردن کد به قطعات کوچک است تا در صورت تغییر یک قطعه، خطر تغییر تصادفی کدهای نامرتبط را نداشته باشید. میتوانید یک فایل دستهای بزرگ را با شکستن آن به فایلهای کوچکتر و استفاده از دستور CALL برای فراخوانی ماژولهای جداگانه در صورت نیاز مدولار کنید.
بیایید یک سیستم منو را در نظر بگیریم که به کاربر اجازه می دهد هر یک از تعدادی از عملکردها را فراخوانی کند. کاری که ما انجام خواهیم داد این است که هر یک از توابع را در فایل دسته ای خود قرار دهیم و از دستور CALL در فایل دسته ای منوی اصلی برای فراخوانی تابع انتخاب شده استفاده کنیم، که سپس به منو برمی گردد تا کاربر بتواند عملکرد دیگری را انتخاب کند.
Menu.bat ممکن است شبیه به این باشد:
@ECHO OFF :TOP CLS ECHO Welcome to the Main Menu! Here are your choices... ECHO. ECHO A) Perform Function A B) Perform Function B ECHO C) Perform Function C D) Perform Function D ECHO. ECHO Q) Quit ECHO. CHOICE /C ABCDQ GOTO %ERRORLEVEL% :5 GOTO :EOF :4 CALL FuncD.bat GOTO TOP :3 CALL FuncC.bat GOTO TOP :2 CALL FuncB.bat GOTO TOP :1 CALL FuncA.bat GOTO TOP
و در اینجا چیزی است که FuncA.bat ممکن است شبیه باشد:
ECHO This is Function A PAUSE
با وجود این واقعیت که هیچ چیز جالبی در اینجا اتفاق نمی افتد، این شروع یک چارچوب مناسب برای یک سیستم منوی مبتنی بر دستور است. و چند مورد وجود دارد که باید مورد توجه قرار گیرد. با کار از بالا به پایین، اولین دستور جدیدی که با آن مواجه می شویم دستور CLS است. این دستور ساده فقط صفحه را پاک می کند تا منوی ما همیشه به خودی خود خوب ظاهر شود. چشم فهیم همچنین متوجه برخی از جملات ECHO می شود که بلافاصله پس از آن یک نقطه می آید. به این صورت یک خط خالی تولید می کنید. یکی دیگر از موارد جدید برچسب داخلی:EOF است. این امر نیاز به اعلام برچسب خود را که به عنوان آخرین خط فایل وجود دارد (مانند برچسب ":Done" من که در سایر نکات استفاده می شود) را برطرف می کند.
این ما را به بیانیه های CALL می برد. پارامتر مشخص شده با CALL نام فایل دسته ای است که قرار است بعدا فراخوانی شود. بنابراین، برای مثال، اگر کاربر گزینه A را از منو انتخاب کند، فایل دسته ای بلافاصله به برچسب :1 می رود که باعث می شود FuncA.bat در مرحله بعدی فراخوانی شود. فایل FuncA.bat من به سادگی یک خط را ECHO می کند و یک PAUSE را انجام می دهد. دستور PAUSE باعث می شود یک خط خروجی ایجاد شود که می گوید "برای ادامه هر کلید را فشار دهید...". سپس اجرای فایل دسته ای را تا زمانی که کاربر کلیدی را فشار دهد به حالت تعلیق در می آورد. هنگامی که یک کلید فشار داده می شود، فایل دسته ای ادامه می یابد، که در این مورد به این معنی است که FuncA.bat پایان می یابد و کنترل مجدداً در فایل دسته ای منوی اصلی در خط بلافاصله پس از تماس با FuncA.bat از سر گرفته می شود. بنابراین اتفاق بعدی GOTO TOP است که همه چیز را از نو شروع می کند.
توجه داشته باشید که لازم نیست «@ECHO OFF» دیگری را در بالای FuncA.bat قرار دهید زیرا حالت ECHO هنگام فراخوانی FuncA.bat حفظ میشود.