Windows Batch Scripting

برمجة الدُفعات لتعديل أسماء الملفات

Spread the love

يوضح هذا البرنامج التعليمي كيفية إنشاء نصوص دفعاتية لإزالة عدد محدد من الأحرف من بداية أو نهاية أسماء الملفات في دليل. توفر كتابة نصوص الدُفعات طريقة بسيطة وقوية لأتمتة مهام إدارة الملفات ضمن Windows.

محتويات الجدول

إنشاء ملف دفعاتي لإزالة الأحرف

ابدأ بإنشاء ملف نصي جديد (مثلًا، باستخدام المفكرة) وحفظه بامتداد .bat (مثلًا، rename_files.bat). سيحتوي هذا الملف على تعليمات نص الدُفعات.

يتمثل جوهر البرنامج النصي لدينا في الاستفادة من إمكانيات معالجة السلاسل النصية في مُفسّر أوامر Windows باستخدام بناء جملة %variable:~start,length%. يستخرج هذا جزءًا من سلسلة نصية من متغير. start هو موضع البدء (مؤشر قائم على 0)، وlength هو عدد الأحرف التي سيتم استخراجها. تشير قيمة start السالبة إلى العد من نهاية السلسلة.

إزالة الأحرف من نهاية أسماء الملفات

دعونا نوضح إزالة آخر 3 أحرف من جميع الملفات من نوع .txt في دليل:

@echo off
setlocal

for %%a in (*.txt) do (
  set "filename=%%a"
  set "newfilename=!filename:~0,-3!"
  if "!newfilename!"=="" (
    echo تخطي %%a: اسم الملف قصير جدًا.
  ) else (
    ren "%%a" "!newfilename!"
  )
)

endlocal

يتضمن هذا البرنامج النصي المُحسّن معالجة للأخطاء لمنع المشاكل المتعلقة بأسماء الملفات الأقصر من 3 أحرف.

  • @echo off: يكتم عرض الأوامر.
  • setlocal: يُنشئ بيئة محلية، ويعزل المتغيرات.
  • for %%a in (*.txt) do (...): يُكرر عبر ملفات .txt.
  • set "filename=%%a": يُعيّن اسم الملف إلى متغير (تتعامل الاقتباسات مع المسافات).
  • set "newfilename=!filename:~0,-3!": يستخرج جزء السلسلة (جميع الأحرف باستثناء آخر 3 أحرف).
  • if "!newfilename!"=="" (...): يتحقق من أسماء الملفات الفارغة ويتخطاها.
  • ren "%%a" "!newfilename!": يُغيّر اسم الملف (تتعامل الاقتباسات مع المسافات).
  • endlocal: ينهي البيئة المحلية.

إزالة الأحرف من بداية أسماء الملفات

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

@echo off
setlocal

for %%a in (*.txt) do (
  set "filename=%%a"
  set "newfilename=!filename:~5!"
  ren "%%a" "!newfilename!"
)

endlocal

هنا، يبدأ ~5 الاستخراج من الحرف السادس (المؤشر 5)، مما يؤدي إلى إزالة أول 5 أحرف.

معالجة الأخطاء والحالات الحدية

يتضمن البرنامج النصي المُحسّن أعلاه فحصًا لأسماء الملفات الأقصر من طول الإزالة المحدد. هذا يمنع الأخطاء والسلوك غير المتوقع. لمزيد من معالجة الأخطاء المتينة، يمكنك إضافة فحوصات للملفات الموجودة بأسماء جديدة لتجنب الكتابة فوقها.

الاستخدام المتقدم: إزالة أحرف متغيرة

لإزالة عدد متغير من الأحرف، استخدم المتغيرات لتحديد العدد. يمكنك مطالبة المستخدم بإدخال البيانات:

@echo off
setlocal

set /p "charsToRemove=أدخل عدد الأحرف المراد إزالتها: "

for %%a in (*.txt) do (
  set "filename=%%a"
  set "newfilename=!filename:~%charsToRemove%!"
  ren "%%a" "!newfilename!"
)

endlocal

تذكر التحقق من صحة إدخال المستخدم لمنع النتائج غير المتوقعة.

الخلاصة

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

الأسئلة الشائعة

  • س: ماذا لو كانت أسماء الملفات تحتوي على مسافات؟ ج: الاقتباسات حول أسماء الملفات في الأمر ren ضرورية للتعامل مع المسافات بشكل صحيح.
  • س: هل يمكنني إزالة عدد متغير من الأحرف؟ ج: نعم، كما هو موضح في قسم الاستخدام المتقدم.
  • س: ماذا لو كان اسم الملف أقصر من عدد الأحرف التي أريد إزالتها؟ ج: تتعامل البرامج النصية المُحسّنة مع هذا عن طريق تخطي أسماء الملفات القصيرة.
  • س: هل يمكنني استخدام هذا على أنواع ملفات أخرى؟ ج: نعم، قم بتغيير *.txt في حلقة for إلى العلامة البرية المطلوبة (مثلًا، *.* لجميع الملفات).

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *