الدرس 7 █▓▒░ دورة كتابة الملفات الدفعية if exist , for
دورة كتابة الملفات الدفعية
الدرس السابع
تكملة تعليمة الشرط if وحلقة التكرار for
بسم الله الرحمن الرحيم
سنكمل معكم اليوم مشوارنا مع تعليمة الشرط if
و سنتكلم اليوم عن التركيبة
if exist
المهمةصيغة كتابة التعليمة :
if [not] exist FileName command [else expression]
الشرح :
if exist إذا وجد الملف
FileName اسم الملف
command الأوامر التي سيتم تنفيذها إذا وجد الملف
else وإلا ( إن لم يتحقق شرط وجود الملف )
expression الشرط الذي سيتم تحققه في حال عدم وجود الملف
مثال :
اكتب برنامجاً يقوم بحذف الملف autorun.inf و إن لم يوجد يظهر لنا عبارة توضح عدم وجوده
IF EXIST autorun.inf (
del autorun.inf
) ELSE (
echo autorun.inf missing.
)
الشرح :إذا وجد الملف autorun.inf فسيقوم البرنامج بتنفيذ التعليمات الموجودة بين الأقواس
وهي هنا فقط تعليمة حذف الملف del autorun.inf
ويمكن كتابة عدة تعليمات أخرى كل تعليمة في سطر أو الفصل بينهم بعملية and
التي تكتب بهذا الشكل &&
ثم جاءت تعليمة ELSE أي و إن لم يتحقق الشرط السابق فسيتم تنفيذ التعليمات الموجودة بين القوسين التاليين و هنا أيضاً عندنا تعليمة وحيدة هي تعليمة echo لطباعة العبارة
autorun.inf missing.
على الشاشة
ملاحظة :
يمكن كتابة الأقواس في حال وجود عدة تعليمات و يمكن إهمال الأقواس في حال وجود تعليمة واحدة
ففي المثال السابق يمكن كتابة الكود كما يلي :
IF EXIST autorun.inf del autorun.inf ELSE echo autorun.inf missing.
ملاحظة :
يمكن كتابة التعليمة بالشكل if not exist
و يصبح الشرط عكسي أي : إذا لم يوجد
تعليمة حلقة التكرار for في الملفات الدفعية
موعدنا الآن مع تعليمة من التعليمات المهمة جداً و هي تعليمة الحلقات for
و التي لن تجدوا شرحاً لها في المواقع العربية ( وقليل في المواقع الأجنبية )
ولكن هنا في منتديات طه سوفت و في دورتنا المتميزة سنشرحها بشكل وافي بإذن الله
صيغة كتابة التعليمة :
for %%variable in (set) do command
الشرح :%%variable
يعني اسم المتغير و نحن نسميه كما نريدويجب أن يسبق بعلامتي % في الملفات الدفعية
مثل أن نكتب
%%x
(set) القيم التي سيأخذها المتحول xويمكن كتابة القيم هنا أو تحديد ملف خارجي يأخذ منه القيم
Command و يقصد بها الأمر أو مجموعة الأوامر التي ستنفذ من أجل قيم x
- و الأمور ستصبح أوضح من خلال الأمثلة :
مثال :
اكتب برنامجاً يقوم بإنشاء مجلد اسمه tahasoft على أقراص الكمبيوتر
من c إلى g باستخدام تعليمة for
الحل :
for %%x in (c d e f g) do md %%x:\tahasoft
عرفنا المتغير x الذي سيأخذ القيم c d e f g بالترتيبأي قيمة x ستكون عند أول تنفيذ هي c ثم ستصبح d ثم ستصبح e ...
و بعد كل قيمة سينفذ البرنامج الأمر md لإنشاء المجلد tahasoft على القرص حسب المتغر
و لمزيد من التوضيح : إن السطر السابق يمثل كتابتنا لما يلي :
md c:\tahasoft
md d:\tahasoft
md e:\tahasoft
md f:\tahasoft
md g:\tahasoft
فنحن اختصرنا كتابة سطر جديد لكل أمر باستعمالنا للأمر forفهو يعطي حلقة متكررة بحيث يأخذ المتغير كل مرة قيمة
ملاحظة :
يمكن كتابة فاصلة , بين أسماء الملفات في الكود السابق أو ترك فراغات بالمسطرةأي يمكن كتابة الكود كالتالي :
for %%x in (c,d,e,f,g) do md %%x:\tahasoft
مثال آخر :
هل تذكرون قصة المتغيرات مع التعليمات ؟
هناك متغير اسمه f يمكن استعماله مع تعليمة for و يستخدم للتعامل مع ملفات خارجية
و قد أفادني كثيراً في بعض التطبيقات التي أكتبها وعثرت عليه بعد معاناة :o
السؤال :
لنفترض أن عندنا ملف نصي اسمه tahasoft.txt موجود على القرص c
وفيه أسماء ملفات ( نراعي كتابة كل اسم في سطر )ونريد من البرنامج أن يبحث عن الكلمات الموجودة في ذلك الملف النصي و يطبعها على الشاشة
الحل
:for /f %%s in (c:\tahasoft.txt) do echo %%s
الشرح :بفرض ان الملف tahasoft.txt يحوي مايلي:
helloفستكون نتيجة تنفيذ البرنامج هي ظهور نفس المحتويات على الشاشة
batch file
bye
تنويه :
ميزة هذه التعليمة في مثل هذه الحالة أن تلك الأسماء أصبحت متغيرات و يمكن أن نتعامل معها بأي من الأوامر السابقة في الدروس السابقة من تعليمات النسخ و النقل و الحذف و كل شيء و حتى التعليمات التي لم نأخذها و هي تفيد جداً في اختصا رعمليات التكرار و يمكن تصغير البرامج كبيرة الحجم التي فيها تكرار أسطر تعليمات
الوظيفة :
ليكن لدينا ملفاً موجوداً على المسار التالي :
c:\windows\tahasoft.txt
و هذا الملف يحوي الأرقام من صفر إلى عشرة
ونريد من البرنامج أن يقرأ محتويات هذا الملف
ثم يقوم بإنشاء مجلدات لها نفس اسماء المحتويات على القرص d
أي سيقوم بإنشاء مجلدات باسم 1,2,3,4,5,6,7,8,9,10
على القرص d
::: طبعاً اذا كانت محتويات الملف tahasoft.txt مختلفة فستخلتلف النتيجة
تحميل الدرس
:
أولاً أشكرك على انضمامك لأسرتنا و نحن نتشرف بك بالمنتدى
ويبدو أنك من محبي هذه اللغة السهلة الرائعة بنفس الوقت
و بالنسبة لأمر for يمكن نحن أول من يشرحه بعد أن عانيت حتى فهمته و لم أجد شرحاً له
كنت بستنى هالدرس من زمان واهم شي الأمر FOR
(شــــــــــــــــــــــكـــــــــــــــــــــــــــــــــــــــــــــــــر ا ً)
السلام عليكم ورحمة الله وبركاته
شكرا لك اخي الكريم
بارك الله فيك
تقبل تحياتي
أسلوبك في كتابة الكود في قمة الروعة
و استعمالك لتعليمة goto
أنيق و مميز
يبدو أنك مبرمج مسبق لإحدى لغات البرمجة الارقى
زادك الله علماً و نوراً
http://www.multiupload.com/GRRXZCPHBU
تقبل مروري
لقد قمت بالتعديل تفضل الوضيفة:
http://www.multiupload.com/61I8KNY3DI
إدا نحن في إنتضار الدرس القادم إن شاء الله
.------------------------------------------------------------------------------------
كيف تقوم بالكتابة باللغة العربية بعد التعليم title في الملف الدفعي فأنا عندما أكتب بالغة العربية تخرج لي كلمات غير مفهومة والله دا السؤال خاطر ببالي وما وجدت الحل فقررت اللجوء إلى أستاد الأساتدة زهير الدي متأكدةبانه يعرف الإجابة وشكرا.
لقد صنعته بإدن الله وبفضلك سوف أرفعه للمعاينة وهو يعمل 100%100 لقد إتبعت الطريقة 1 وضعت ملف نصي في الفلاش ميموري وعند تشغيل الملف الدفعي يوم بالبحث عن الملف النصي وعندما يجده يصبح إسم الفلاش ميموري %flash%و شكر لك استاد هدا هو الدرس المنتظر.
تفضل رابط الملف:
http://multi-load.com/files/17UWUXUL/copy.rar
شكرا لك أخي زهير لا أدري كيف لم تنجح معي من المرة الأولى والله مبدع في الشروحات ومبدع في التصحيح يا أخي لقد خلقت لكون أستاد وشكرا.
يمكن ذلك و سيصبح الكود كالتالي :
و به سنحصل على كافة احتمالات لون الكتابة مع لون الخلفية
لماذا لا يكونا متغيرين واحد للنص والآخر للخلفية؟؟؟؟؟؟؟؟؟