الدرس الرابع نبذة عن ملف compile.bat

مرحبا بكم في موقع محمد بشير

الدرس الرابع حول ملف البات

في الدروس السابقة استخدمنا ملفين لتنفيز برامج c#
وهما ملف rename.bat لتغيير اسم وامتداد الملفات والملف الثاني هو ملف compile.bat لتنفيز البرامج
وفي هذا الدرس سوف نقوم بإعادة كتابة ملف compile.bat والإستغناء عن ملف rename.bat وذلك بعد دمج محتواه في الملف الأول
معذرة في هذا الدرس سوف نستخدم نفس ملف البرنامج للدرس السابق وهو ملف step2.cs بدون أي تغيير
ويمكن تحميل ملفات الدرس الرابع من خلال الضغط على رابط
إضغط هنا
ومحتوى ملف compile.bat الجديد هو كما يلي


@echo off
::-----------------------------------
:: ملف bat لتنفيز البرامج باستخدام برنامج csc.exe إصدار رقم 1.0
:: المصمم محمد بشير
:: الموقع الإلكتروني http://bashir.taibat.com/
::-----------------------------------

SET CompilePath=C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
SET FileName=Step2
SET ErrorFile=Error.txt
SET ReportFile=BugReport.txt
SET CompilePathErrorMessage=C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
SET ErrorDeleteErrorMessage=「%ErrorFile%」خلل في حزف الملف
SET ReportDeleteErrorMessage=「%ReportFile%」خلل في حزف الملف
SET ExecutableDeleteErrorMessage=「%FileName%.exe」خلل في حزف الملف
SET SourceFileErrorMessage=「%FileName%.cs」أو ملف「%FileName%.txt」لا يوجد
SET /A RenameFlag=0

:: الخروج من البرنامج إذا لم يكن مسار برنامج csc.exe غير صحيح

IF NOT EXIST "%CompilePath%" (
echo %CompilePathErrorMessage% > %ErrorFile%
exit
)

:: حزف ملف الأخطاء

IF EXIST "%ErrorFile%" (
erase %ErrorFile%
IF EXIST "%ErrorFile%" (
echo %ErrorDeleteErrorMessage% > %ErrorFile%
exit
)
)

:: حزف ملف تقرير البوق

IF EXIST "%ReportFile%" (
erase %ReportFile%
IF EXIST "%ReportFile%" (
echo %ReportDeleteErrorMessage% > %ErrorFile%
exit
)
)

:: حزف ملف .exe إذا وجد

IF EXIST "%FileName%.exe" (
erase %FileName%.exe
IF EXIST "%FileName%.exe" (
echo %ExecutableDeleteErrorMessage% > %ErrorFile%
exit
)
)

:: تغيير إمتداد .txt إلى ملف .cs

IF NOT EXIST "%FileName%.cs" (
IF EXIST "%FileName%.txt" (
rename %FileName%.txt %FileName%.cs
SET /A RenameFlag=1
)
)

:: الخروج إذا لم يوجد ملف التفيز

IF NOT EXIST "%FileName%.cs" (
echo %SourceFileErrorMessage% > %ErrorFile%
exit
)

:: بداية التنفيز

%CompilePath% %FileName%.cs

:: إذا كان هناك خطأ في الكود أو لم يوجد ملف .exe إنشاء ملف التقرير

IF NOT EXIST "%FileName%.exe" (
echo on
%CompilePath% /bugreport:%ReportFile% %FileName%.cs
)

:: إذا كان ملف الكود بصيغة txt بعد التنفيز يتم إعاد الإمتداد لtxt

IF %RenameFlag% == 1 (
rename %FileName%.cs %FileName%.txt
)

exit

لأننا لا نتحدث عن طريقة كتابة ملفات .bat ولمعرفة المزيد هذه الطريقة لتنفيذ البرامج الرجاء الرجوع إلى محركات البحث المختلفة
وبصورة عامة هي عبارة عن لغة برمجة بسيطة تمكن الأشخاص من إجراء الكثير من العمليات بكل يسر وسهولة
مثل تغيير أسماء وامتدادات الملفات المختلفة كما هو مستخدم في هذا البرنامج
وأيضا في هذا البرنامج تعتبر كل السطور التي تبدأ بعلامتي :: سطر لكتابة الملاحظات ولا تؤثر على تنفيذ البرنامج
وأهم شيء يجب مراعاته في هذا الملف هو
السطر الخاص بكتابة مسار برنامج التنفيذ csc.exe ولكن في الغالب الأعم يمكن استخدام المسار المذكور أعلاه بدون أي تغيير
والسطر الثاني الذي يجب مراعاته هو السطر الذي يحتوي على اسم الملف الذي يراد تنفيذه وفي هذا البرنامج اسم الملف هو step2 بدون كتابة صيغة الإمتداد
ويمكن جعل امتداد الملف المراد تنفيذه بصيغة .txt أو صيغة .cs
وسوف يتم تحويل الإمتداد من .txt إلى إمتداد .cs تلقائيا
وأيضا يتم إعاد الإمتداد إلى صيغة .txt بعد تنفيذ البرنامج وذلك بهدف تييسير فتح وتعديل ملفات لغة c#
وبعد التنفيذ وفي حالة عدم وجود أي أخطاء في البرمجة يتم إنشاء برنامج باسم step2.exe ولكن إذا كانت هنالك أي أخطاء يجب الضغط على مفتاح الإدخال مرتين لقفل برنامج التنفيذ
وبعد الضغط على مفتاح الإدخال مرتين يتم إنشاء ملف باسم BugReport.txt وهو ملف كبير قليلا ويحتوي على كافة تفاصيل عملية التنفيذ
يحتوي هذا الملف على كل تفاصيل عملية التنفيذ ولكن في الوق الراهن يهمنا فقط السطر أو السطور التي تحتوي على الإرشاداد الخاصة بالأخطاء وكيفية تعديلها
وللإنتقال إليه بكل يسر وسهولة يجب إستخدام خاصية البحث في محرر النصوص الخاص بك
وذلك باستخدام كلمة output عند محرر البحث وذلك خاص بنظام الويندوز الذي يعمل باللغة الإنجليزية
وحتى نتعرف على معاني الأخطاء نقوم بتجربة ما يلي
على سبيل المثال نقوم بوضع أي حرف أو رقم قبل السطر الثاني في ملف step2 والسطر الثاني هو using System;
وكما تعلمنا في الدرس السابق فإن using System; تعني إعلان لأحد الحزم الإفتراضية والتي لا يمكن تغييرها لذا بعد تنفيذ البرنامج والبحث عن مكان الخطأ نحصل على الرسالة التالية
Step2.cs(2,1): error CS0116: A namespace does not directly contain members such
بعد اسم الملف يوجد رقمان الأول يشير إلى رقم السطر والرقم الثاني يشير إلى رقم الحرف اللذان يوجد بهما الخطأ وكما نرى في هذه الرسالة فنجد مكتوبا الرقم 2 أي السطر الثاني ورقم 1 أي الحرف الأول في السطر الثاني
ومن ثم يوجد شرح لمعنى الخطأ وفي هذه الحالة تقول الرسالة لا يمكن إضافة هكذا حرف على الحزم الإفتراضية أي بمعنى لا توجد حزمة بهذا الاسم
ومثال آخر نقوم بحزف علامة سمكلون من سطر عنوان البرنامج وهو st.Text = "البرنامج الثاني" // عنوان البرنامج
وبعد التنفيذ نحصل على الرسالة التالية
Step2.cs(15,30): error CS1002: ; expected
ومعنى هذه الرسالة أنه يجب كتابة علامة سمكلون في السطر 15 عند الحرف 30 ولمزيد من التأكيد الرجاء مراجعة رقم السطر والحرف معا
وبهذه الطريقة يمكننا التعرف على مكان ونوع الخطأ بكل يسر وسهولة وبهذه الطريقة يتم توفير الكثير من الوقت والجهد أثناء كتابة وتصميم البرامج
وبهذا نكون قد إنتهينا من هذا الدرس وسوف نقوم من الدرس التالي باستخدام قوالب قصيرة لتعلم كيفية كتابة الأزرار ومربع التحرير
ونتمنى أن نعود إليكم في الأسبوع القادم مع درس جديد
وبالله التوفيق