1. ما هي ملفات الـ Batch (.bat) ولماذا تُعد أقوى أداة لأتمتة الويندوز؟

في عالم إدارة الأنظمة والتطوير اليومي، يُعتبر الوقت هو المورد الأكثر ثمنًا. إذا كنت تجد نفسك تكرر مجموعة من الأوامر في شاشة Windows Command Prompt (CMD) يوميًا مثل: تنظيم الملفات، النسخ الاحتياطي، إغلاق البرامج، أو تنظيف الذاكرة المؤقتة، فإن **ملفات الـ Batch Scripting (ملفات .bat)** هي حلك السحري لأتمتة هذه المهام بنقرة واحدة!

ملف الـ **.bat** هو عبارة عن ملف نصي بسيط يحتوي على سلسلة من الأوامر التي يستطيع مفسر الأوامر `cmd.exe` قراءتها وتنفيذها بالتتابع التلقائي دون الحاجة لتتدخل يدويًا في كل خطوة.

الفرق بين .bat و PowerShell: ملفات `.bat` تمتاز بالسرعة الخارقة، الخفة، وتعمل على أي جهاز ويندوز بدون أي متطلبات أو إعدادات سياسات أمان (Execution Policies)، بينما PowerShell مخصص للأنظمة المعقدة جداً والـ .NET Framework.

2. الأوامر البنائية والأساسيات الجوهرية لبناء الملف

لبناء ملف دُفعات نظيف واحترافي، هناك تعليمات أساسية يجب أن يستفتتح بها أي سكريبت لتنسيق المخرجات والتحكم في سير العمل:

  • @echo off: تمنع عرض الأوامر نفسها في الشاشة السوداء وتكتفي بعرض النتيجة فقط، مما يعطي مظهرًا احترافيًا.
  • echo [text]: لطباعة النصوص والملاحظات للمستخدم على الشاشة.
  • pause: توقف السكريبت مؤقتًا وتنتظر ضغط أي زر للاستمرار (حتى لا تغلق الشاشة فجأة).
  • rem أو ::: لإضافة التعليقات والملاحظات داخل الكود دون تنفيذها.
  • cls: لمسح وتظهير محتوى شاشة الأوامر.
  • set var=value: لإنشاء متغير واستخدامه عبر استدعائه بالشكل `%var%`.
مثال على سكريبت ترحيبي بسيط وقراءة المتغيرات
@echo off
:: تغيير عنوان نافذة الموجه
title Smart Automation Script - Elshemy
color 0A
cls

echo ====================================================
echo      مرحباً بك في سكريبت الأتمتة الذكي
echo ====================================================
echo.

set /p username="ادخل اسمك الكريم: "
echo.
echo أهلاً بك يا %username%! جارِ تجهيز النظام...
echo تاريخ اليوم: %DATE% - الوقت الحالي: %TIME%
echo.
pause

3. أهم الأوامر التشغيلية والإدارية في ملفات الـ BAT

لكي تتمكن من إنشاء ملفات قوية، إليك تصنيف أهم الأوامر اليومية مقسمة حسب غرض الاستخدام:

أولاً: التعامل مع الملفات والمجلدات (File Management)

أوامر إنشاء، نسخ، ونقل الملفات الذكية
:: إنشاء مجلد جديد
mkdir "C:\MyBackups"

:: نسخ ملف مفرد مع الاستبدال
copy "C:\source\file.txt" "D:\destination\" /Y

:: نسخ مجلد بالكامل بكل محتوياته ورعايته للمجلدات الفرعية
xcopy "C:\Project" "D:\Backup\Project" /E /H /C /I /Y

:: النسخ الاحترافي السريع والتزامن باستخدام Robocopy (الأفضل للنظام)
robocopy "C:\Data" "E:\Backup\Data" /MIR /R:2 /W:5

ثانيًا: إدارة العمليات والخدمات (Processes & Services)

إنهاء البرامج والتحكم في الخدمات
:: عرض جميع البرامج والعمليات الشغالة حالياً
tasklist

:: إغلاق برنامج بالقوة (مثل متصفح كروم أو برنامج معلق)
taskkill /F /IM chrome.exe /T

:: إعادة تشغيل خدمة الإيعاز للطباعة (Spooler)
net stop spooler
net start spooler

ثالثًا: صيانة النظام وإصلاح الشبكة (Maintenance & Networking)

أوامر تنظيف الكاش وإصلاح الاتصال
:: مسح كاش الـ DNS وإصلاح بطء التصفح
ipconfig /flushdns

:: تجديد كرت الشبكة والحصول على IP جديد
ipconfig /release
ipconfig /renew

:: فحص سلامة ملفات النظام وإصلاح المعطوب منها (يحتاج صلاحيات آدمن)
sfc /scannow

4. أفكار وسكريبتات عملية متكاملة جاهزة للاستخدام المباشر

إليك 3 سكريبتات متقدمة تم تصميمهما لتغطية أشهر استخدامات الأتمتة الميدانية:

1. سكريبت النسخ الاحتياطي الذكي المكتبي (Smart Backup Script)

يقوم بإنشاء مجلد بتاريخ اليوم تلقائيًا ونقل جميع مستنداتك وتطبيقاتك إليه لحمايتها من الضياع:

Smart_Auto_Backup.bat
@echo off
title Auto Backup System - Ahmed Elshemy
color 0B

:: استخراج التاريخ بتنسيق مناسب لأسماء المجلدات
set YYYY=%date:~-4%
set MM=%date:~3,2%
set DD=%date:~0,2%
set BACKUP_FOLDER=D:\Backups\Backup_%YYYY%-%MM%-%DD%

echo ===================================================
echo     جارِ بدء النسخ الاحتياطي التلقائي إلى:
echo     %BACKUP_FOLDER%
echo ===================================================

if not exist "%BACKUP_FOLDER%" mkdir "%BACKUP_FOLDER%"

:: نسخ الملفات والمشاريع
robocopy "%USERPROFILE%\Documents" "%BACKUP_FOLDER%\Documents" /E /XC /XN /XO
robocopy "%USERPROFILE%\Desktop\Important" "%BACKUP_FOLDER%\Desktop" /E /XC /XN /XO

echo.
echo [✓] تم اكتمال النسخ الاحتياطي بنجاح!
pause

2. سكريبت التنظيف الشامل وتفريغ مساحة القرص (Deep Windows Cleaner)

حذف الملفات المؤقتة والـ Cache المعلقة التي تسبب بطء الجهاز:

Windows_Deep_Cleaner.bat
@echo off
title Windows System Purger - Ahmed Elshemy
color 0C

echo ===================================================
echo     تنبيه: جارِ حذف ملفات الـ Temp والـ Prefetch...
echo ===================================================

:: حذف الملفات المؤقتة في مجلد المستخدم
del /s /f /q "%temp%\*.*"
for /d %%p in ("%temp%\*.*") do rmdir "%%p" /s /q

:: حذف ملفات النظام المؤقتة
del /s /f /q "C:\Windows\Temp\*.*"
for /d %%p in ("C:\Windows\Temp\*.*") do rmdir "%%p" /s /q

:: تفريغ كاش الـ Prefetch
del /s /f /q "C:\Windows\Prefetch\*.*"

echo.
echo [✓] تم تنظيف النظام بنجاح واستعادة مساحة القرص!
pause
5. مولّد سكريبتات الـ BAT التفاعلي (Interactive Script Builder)

حدد الخيارات والمهام التي تريد تضمينها في الملف، وسيتم إنشاء كود الـ Batch مخصص تلقائياً لك جاهزاً للنسخ والتنزيل:

الكود المولد تلقائياً (Custom_Automation.bat)
@echo off
:: سكريبت أتمتة مخصص - صُمم بواسطة مولد أحمد الشيمي
title Custom Windows Automation Tool
color 0A
cls

echo ============================================
echo   مرحباً بك في سكريبت الأتمتة المخصص
echo ============================================

echo.
echo [✓] جارِ تنظيف الملفات المؤقتة والـ Temp...
del /s /f /q "%temp%\*.*" >nul 2>&1

echo [✓] تم تنفيذ كافة المهام المحددة بنجاح!
pause

6. محاكي موجه الأوامر التفاعلي (CMD Terminal Simulator)

جرب اختبار تنفيذ السكريبتات ومعاينة النتائج كأنك تعمل داخل نافذة الـ CMD الحقيقية:

Command Prompt - Windows Batch Execution Simulator
C:\Windows\system32> echo Interactive Terminal Ready. Select a script to test...
Interactive Terminal Ready. Select a script to test...

7. المستكشف المرجعي السريع لأوامر ה-BAT

ابحث عن أي أمر لمعرفة وظيفته وصيغة الاستخدام المباشرة:

الأمر الوصف والمهمة تصنيف الأداة مثال تطبيقي
@echo off إخفاء نص الأوامر أثناء التنفيذ وإبراز النتيجة فقط تنسيق العرض @echo off
robocopy أقوى وأسرع أمر لنسخ المجلدات الهائلة وتنسيقها إدارة الملفات robocopy C:\src D:\dst /MIR
taskkill إغلاق برنامج أو عملية معينة بالقوة في النظام إدارة العمليات taskkill /F /IM notepad.exe
ipconfig عرض وتنظيف وتحديث إعدادات كرت الشبكة الـ IP الشبكات ipconfig /flushdns
sfc /scannow فحص وتصحيح ملفات الويندوز المعطوبة تلقائياً الصيانة والأمان sfc /scannow
set /p طلب إدخال قيمة نصية أو تفاعلية من المستخدم المتغيرات والبرمجة set /p name="Enter Name: "
for /f حلقة تكرارية لقراءة أسطر ملف نصي أو نتائج أمر التحكم والمنطق for /f %%a in (file.txt) do echo %%a
shutdown إعادة تشغيل أو إغلاق جهاز الكمبيوتر بعد وقت محدد إدارة النظام shutdown /r /t 60

8. نصائح متقدمة وحيل احترافية لأصحاب الخبرة

1. تشغيل الملف بصلاحيات المسؤول (Run as Admin) تلقائيًا

أضف هذا المقطع في بداية ملف الـ .bat ليقوم بالتحقق من الصلاحيات وإعادة تشغيل نفسه كأدمن تلقائيًا عند الفتح:

Self-Elevating Admin Privilege Snippet
@echo off
net session >nul 2>&1
if %errorLevel% == 0 (
    echo [✓] تشغيل بصلاحيات مسؤول المباشرة...
) else (
    echo [!] جارِ طلب صلاحيات المسؤول Admin...
    powershell -Command "Start-Process '%~f0' -Verb RunAs"
    exit /b
)

2. جدولة تشغيل السكريبت تلقائيًا بدون تدخل (Task Scheduler)

يمكنك استخدام أداة Windows Task Scheduler لتشغيل ملف الـ `.bat` كل يوم في ساعة معينة (مثلاً الساعة 12 منتصف الليل للنسخ الاحتياطي)، أو عبر أمر الـ CLI: schtasks /create /tn "DailyBackupTask" /tr "C:\Scripts\Smart_Auto_Backup.bat" /sc daily /st 00:00

أحمد الشيمي

كتبه: أحمد الشيمي (Ahmed Elshemy)

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