الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن خاصية في ال Batch Files

مغلق
بدأه djug في 1 أكتوبر 2007 · 7 رد · 946 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هل يمكن استرجاع داخل متغير ما و ليكن DriveList جملة السواقات الموجودة ( hard disk partition)

بحيث يمكن أن نكتب حلقة for (طبعا داخل batch file) و تكون على هذه الشاكلة

FOR MyVar IN DriveList DO
}
instructions
{

والهدف من كل هذا هو عدم تكرار نفس الأوامر (instruction) على جميع drives

مثال لتوضيح الفكرة:

لدينا مجلد TEMP في كل Drive و نريد أن نقوم يمحو محتواه بملف batch

و شكرا مسبقا

#2

هل يجب ان يكون Batch ؟ لما لا تكتب بريمج صغير يقوم بالازم!

d4baa0.gif
#3

اسم المتغير يجب ان يكون مسبوقاً بـ %%

وليس اطول من 8 احرف حسبما اذكر وليس اسم محجوز.. ونسيت

احدى الطرق في تحديد وجود سواقة من عدمها:

COMMAND /F /C DIR C:\ | FIND "C:" > NUL

لذلك تستطيع كتابة حلقة لتقوم بتحديد السواقات الموجودة ووضعها في ال list المطلوب ثم تكتب حلقة اخرى لتنفيذ ما تريد

لكن الامر ليس بالسهولة التي قد تتخيلها, ايضا FOR لملفات bat ليست كبقية لغات البرمجة, لا تحوي على block تكراري وانما من الشكل:

FOR variable IN list DO command [parameters] [switches]


FOR %%f IN (*.*) DO TYPE %%f | MORE

اتصور قد تستخدم shift ايضا

راجع: http://www.cs.ntu.edu.au/homepages/bea/hom...tion.html#shift

و

http://www.robvanderwoude.com/batchfiles.html

و

Google

تم تعديل هذه المشاركة بواسطة Junkie في 1 أكتوبر 2007 في 15:40

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4
B.M.AbdelAziZ كتب:

هل يجب ان يكون Batch ؟ لما لا تكتب بريمج صغير يقوم بالازم!

و لكن كيف يمكن عمل ذلك (مثلا بـ c/c++)

أخي Junkie

شكرا على المعلومات القيمة

سأجرب تطبق ما ذكرته و شكرا

لكن لدي سؤال

أو بالأحرى فكرة

وهي أن أقوم بعمل حلقة for على حروف الأبجدية c d e f ...z

و من ثم نضيف : إلى الحرف :

لكن لم تنجح معي

فهل لك طريقة ما لإنجاح هذه الفكرة؟

تم تعديل هذه المشاركة بواسطة djug في 1 أكتوبر 2007 في 16:26

#5
اقتباس
و لكن كيف يمكن عمل ذلك...

اولا اجبني:

اين تريده ان ينفد ؟ DOS ؟ Windows ؟

d4baa0.gif
#6
B.M.AbdelAziZ كتب:

اولا اجبني:

اين تريده ان ينفد ؟ DOS ؟ Windows ؟

و هل هناك فرق إذا كان الـ dos الذي استعمله أقوم باستعماله في بيئة الـ windows (الأمر cmd)

على كل حال أرجو أن تشرح الحالتن معا إذا أمكن

#7

طبعا هناك فرق

في DOS

تتم برمجته باستخدام المقاطعات INT

يكون 16 bits

في Windows

تتم برمجته باستخدام API

يكون 32bits

d4baa0.gif
#8
B.M.AbdelAziZ كتب:

طبعا هناك فرق

في DOS

تتم برمجته باستخدام المقاطعات INT

يكون 16 bits

في Windows

تتم برمجته باستخدام API

يكون 32bits

إذا كان كذلك فأريد إذا عملها في بيئة windows

تم تعديل هذه المشاركة بواسطة djug في 1 أكتوبر 2007 في 17:41

هذا الموضوع مغلق.

مواضيع مشابهة