1. ما هي ملفات الـ Batch (.bat) ولماذا تُعد أقوى أداة لأتمتة الويندوز؟
في عالم إدارة الأنظمة والتطوير اليومي، يُعتبر الوقت هو المورد الأكثر ثمنًا. إذا كنت تجد نفسك تكرر مجموعة من الأوامر في شاشة Windows Command Prompt (CMD) يوميًا مثل: تنظيم الملفات، النسخ الاحتياطي، إغلاق البرامج، أو تنظيف الذاكرة المؤقتة، فإن **ملفات الـ Batch Scripting (ملفات .bat)** هي حلك السحري لأتمتة هذه المهام بنقرة واحدة!
ملف الـ **.bat** هو عبارة عن ملف نصي بسيط يحتوي على سلسلة من الأوامر التي يستطيع مفسر الأوامر `cmd.exe` قراءتها وتنفيذها بالتتابع التلقائي دون الحاجة لتتدخل يدويًا في كل خطوة.
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)
يقوم بإنشاء مجلد بتاريخ اليوم تلقائيًا ونقل جميع مستنداتك وتطبيقاتك إليه لحمايتها من الضياع:
@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 المعلقة التي تسبب بطء الجهاز:
@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
حدد الخيارات والمهام التي تريد تضمينها في الملف، وسيتم إنشاء كود الـ Batch مخصص تلقائياً لك جاهزاً للنسخ والتنزيل:
@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 الحقيقية:
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 ليقوم بالتحقق من الصلاحيات وإعادة تشغيل نفسه كأدمن تلقائيًا عند الفتح:
@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