محمود عفيفى
07-10-2010, 04:17 PM
http://img196.imageshack.us/img196/867/gears.gif
دورة كتابة الملفات الدفعية
الدرس السابع
تكملة تعليمة الشرط 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 يحوي مايلي:
فستكون نتيجة تنفيذ البرنامج هي ظهور نفس المحتويات على الشاشة
تنويه :
ميزة هذه التعليمة في مثل هذه الحالة أن تلك الأسماء أصبحت متغيرات و يمكن أن نتعامل معها بأي من الأوامر السابقة في الدروس السابقة من تعليمات النسخ و النقل و الحذف و كل شيء و حتى التعليمات التي لم نأخذها و هي تفيد جداً في اختصا رعمليات التكرار و يمكن تصغير البرامج كبيرة الحجم التي فيها تكرار أسطر تعليمات
الوظيفة :
ليكن لدينا ملفاً موجوداً على المسار التالي :
c:\windows\tahasoft.txt
و هذا الملف يحوي الأرقام من صفر إلى عشرة
ونريد من البرنامج أن يقرأ محتويات هذا الملف
ثم يقوم بإنشاء مجلدات لها نفس اسماء المحتويات على القرص d
أي سيقوم بإنشاء مجلدات باسم 1,2,3,4,5,6,7,8,9,10
على القرص d
::: طبعاً اذا كانت محتويات الملف tahasoft.txt مختلفة فستخلتلف النتيجة
تحميل الدرس
:d: (http://www.multiupload.com/TBSHK85H5U)
الدرس 8 █▓▒░ دورة كتابة الملفات الدفعية rem,exit,prompt و الكتابة بالعربي في bat (http://www.abc4web.net/vb/showthread.php?t=12388)
دورة كتابة الملفات الدفعية
الدرس السابع
تكملة تعليمة الشرط 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 يحوي مايلي:
فستكون نتيجة تنفيذ البرنامج هي ظهور نفس المحتويات على الشاشة
تنويه :
ميزة هذه التعليمة في مثل هذه الحالة أن تلك الأسماء أصبحت متغيرات و يمكن أن نتعامل معها بأي من الأوامر السابقة في الدروس السابقة من تعليمات النسخ و النقل و الحذف و كل شيء و حتى التعليمات التي لم نأخذها و هي تفيد جداً في اختصا رعمليات التكرار و يمكن تصغير البرامج كبيرة الحجم التي فيها تكرار أسطر تعليمات
الوظيفة :
ليكن لدينا ملفاً موجوداً على المسار التالي :
c:\windows\tahasoft.txt
و هذا الملف يحوي الأرقام من صفر إلى عشرة
ونريد من البرنامج أن يقرأ محتويات هذا الملف
ثم يقوم بإنشاء مجلدات لها نفس اسماء المحتويات على القرص d
أي سيقوم بإنشاء مجلدات باسم 1,2,3,4,5,6,7,8,9,10
على القرص d
::: طبعاً اذا كانت محتويات الملف tahasoft.txt مختلفة فستخلتلف النتيجة
تحميل الدرس
:d: (http://www.multiupload.com/TBSHK85H5U)
الدرس 8 █▓▒░ دورة كتابة الملفات الدفعية rem,exit,prompt و الكتابة بالعربي في bat (http://www.abc4web.net/vb/showthread.php?t=12388)