نصوص الدفعة (Batch scripts) هي طريقة قوية لأتمتة المهام في نظام Windows، وإحدى أهم ميزات أي لغة برمجة نصية هي القدرة على إنشاء الحلقات. تسمح الحلقات بتكرار مجموعة من الأوامر عدة مرات، إما لعدد محدد من التكرارات أو بناءً على شروط معينة.

لماذا نستخدم الحلقات في نصوص الدفعة؟

يمكن أن تكون الحلقات مفيدة للغاية في البرمجة النصية للدفعة من أجل:

- أتمتة المهام المتكررة

- التكرار على الملفات أو المجلدات

- معالجة قائمة من المدخلات

- تنفيذ الإجراءات حتى يتم استيفاء شرط معين

من خلال تعلم كيفية إنشاء الحلقات، يمكنك جعل نصوصك البرمجية أكثر كفاءة ومرونة.

أنواع الحلقات في البرمجة النصية للدفعة

هناك نوعان رئيسيان من الحلقات في البرمجة النصية للدفعة:

- حلقة for - تكرر على مجموعة من القيم أو الملفات أو المجلدات.

- حلقة goto - تستخدم العلامات لتنفيذ كتلة من الكود بشكل متكرر.

دعونا نستكشف كليهما بالتفصيل.

1. حلقة for

حلقة for في البرمجة النصية للدفعة متعددة الاستخدامات. فهي تسمح لك بالتكرار على مجموعة من القيم أو الملفات أو المجلدات، وحتى مخرجات الأوامر. إليك الصيغة الأساسية:

```batch
for %%variable in (set) do command
```

- %%variable هو عنصر نائب لكل عنصر في المجموعة.

- (set) هي المجموعة التي تقوم بالتكرار عليها، مثل قائمة ملفات أو تسلسل أرقام.

- command هو الإجراء الذي تريد تنفيذه لكل عنصر في المجموعة.

مثال 1: التكرار على مجموعة من الأرقام

هذه الحلقة تطبع الأرقام من 1 إلى 5 على الشاشة:

```batch
@echo off
for /l %%i in (1,1,5) do echo %%i
```

- العلامة /l تخبر الحلقة بالتكرار على مجموعة من الأرقام.

- (1,1,5) تعني "ابدأ من 1، زد بمقدار 1، وتوقف عند 5."

مثال 2: التكرار على الملفات في مجلد

هذه الحلقة تعالج جميع ملفات .txt في مجلد:

```batch
@echo off
for %%f in (*.txt) do echo Processing %%f
```

- in (*.txt) يحدد أنك تقوم بالتكرار على جميع ملفات .txt في المجلد الحالي.

- تقوم الحلقة بطباعة اسم كل ملف تتم معالجته.

مثال 3: التكرار على مخرجات الأمر

يمكنك أيضًا التكرار على مخرجات أمر. هنا مثال يتكرر على قائمة المهام قيد التشغيل:

```batch
@echo off
for /f "tokens=1" %%a in ('tasklist') do echo %%a
```

- العلامة /f تخبر الحلقة بالتكرار على كل سطر من مخرجات أمر tasklist.

- "tokens=1" يضمن استخدام الرمز الأول فقط (اسم المهمة) من كل سطر.

2. حلقة goto

طريقة أخرى لإنشاء حلقة في نص دفعة هي استخدام أمر goto. يسمح لك هذا النهج بالقفز إلى قسم معنون من النص البرمجي، مما ينشئ حلقة لا نهائية أو شرطية.

الصيغة الأساسية:

```batch
:label
commands
goto label
```

مثال: حلقة لا نهائية

الحلقة التالية ستطبع "Hello, World!" بلا نهاية:

```batch
@echo off
:loop
echo Hello, World!
goto loop
```

ستعمل هذه الحلقة إلى الأبد لأنها تقفز باستمرار إلى العلامة :loop. يمكنك إيقافها يدويًا عن طريق إغلاق النافذة أو الضغط على Ctrl + C.

مثال: حلقة شرطية باستخدام if

يمكنك إضافة شرط لكسر الحلقة. في هذا المثال، تعمل الحلقة حتى تصل المتغيرة counter إلى 5:

```batch
@echo off
set counter=1

:loop
echo %counter%
set /a counter=%counter%+1
if %counter% leq 5 goto loop
```

هنا:

- set /a counter=%counter%+1 يزيد قيمة المتغيرة counter.

- if %counter% leq 5 يتحقق مما إذا كان العداد أقل من أو يساوي 5، وإذا كان صحيحًا، يقفز مرة أخرى إلى العلامة :loop.

حالات الاستخدام الواقعية لحلقات الدفعة

1. إعادة تسمية الملفات بالدفعة

يمكنك استخدام حلقة لإعادة تسمية ملفات متعددة في مجلد:

```batch
@echo off
setlocal enabledelayedexpansion
set count=1
for %%f in (*.txt) do (
  rename "%%f" "file_!count!.txt"
  set /a count+=1
)
```

2. معالجة الملفات في مجلد

يمكنك التكرار على الملفات في مجلد وتنفيذ إجراء على كل منها:

```batch
@echo off
for %%f in (C:\Path\To\Folder\*) do (
  echo Processing %%f
  rem Add your processing commands here
)
```

3. أتمتة الأوامر المتكررة

إذا كنت بحاجة إلى تشغيل أمر معين عدة مرات، يمكنك التكرار خلال تسلسل:

```batch
@echo off
for /l %%i in (1,1,10) do (
  echo Running iteration %%i
  rem Add your command here
)
```

الخاتمة

استخدام الحلقات في نص دفعة هو طريقة ممتازة لجعل نصوصك البرمجية أكثر قوة ومرونة. سواء كنت بحاجة إلى التكرار على الملفات، أو معالجة البيانات، أو أتمتة المهام المتكررة، توفر الحلقات التحكم والمرونة التي تحتاجها.

إتقان الحلقات سيسمح لك بالتعامل مع مجموعة واسعة من سيناريوهات الأتمتة، من المهام البسيطة إلى سير العمل الأكثر تعقيدًا.

هل استخدمت الحلقات في نصوص الدفعة الخاصة بك؟ شارك أمثلتك وأفكارك في التعليقات!