🗃️ PowerShell والتعامل مع الملفات
- بمفردك، على وتيرتك
🎯 الهدف التعليمي
- التعامل مع الملفات والمجلدات عبر PowerShell
- أتمتة المهام البسيطة باستخدام السكربتات
- استخدام المسارات النسبية والمطلقة
- البحث عن الملفات والمحتوى النصي في شجرة الدليل
- عرض وتعديل أذونات الملفات
📜 البيان
🔧 السياق
يعهد إليك مسؤول النظام بسلسلة من المهام لتنفيذها عبر PowerShell. يمكن أتمتة هذه المهام في سكربت صغير. يجب عليك إنشاء بيئة عمل، والتعامل مع الملفات والمجلدات، وكل ذلك باستخدام PowerShell.
📁 الخطوة 1 – إعداد بيئة
- افتح PowerShell في مجلد عمل من اختيارك.
- أنشئ الهيكل التالي باستخدام PowerShell:
projet/
├── notes/
├── archives/
└── temp/
- في مجلد
notes، أنشئ 3 ملفات نصية باسمcours1.txt,cours2.txt,cours3.txt. يجب أن يحتوي كل من هذه الملفات على جملة مختلفة، تتضمن كلمة مهم في أحدها. أدخل المحتوى مباشرة في الملفات باستخدام PowerShell. - في مجلد
temp، أنشئ ملف نصي باسمtemp.txtبالمحتوى التالي:Ce fichier est temporaire.
الأوامر المفيدة:
New-Itemلإنشاء الملفات والمجلداتSet-Contentلكتابة المحتوى في الملفاتGet-ChildItemلسرد الملفات والمجلدات
📂 الخطوة 2 – البحث والمسارات
- ابحث عن جميع الملفات
.txtفي مجلدprojet، حتى في المجلدات الفرعية. - ابحث عن الكلمة
مهمفي جميع الملفات النصية. - اعرض المسار المطلق لكل من الملفات
.txt.
الأوامر المفيدة:
Get-ChildItem -Recurseلسرد الملفات بشكل متكررSelect-Stringللبحث عن النص في الملفاتResolve-Pathللحصول على المسار المطلق للملفات
🔄 الخطوة 3 – الأتمتة والتغليف البسيط
-
اكتب سكربت PowerShell باسم
gestion.ps1يقوم بالعمليات التالية:-
نسخ جميع الملفات من
notesإلىarchives -
حذف محتوى مجلد
tempإذا كان موجودًا (دون حذفtempنفسه) -
إعادة تسمية الملفات المنسوخة في
archivesبإضافة_backupقبل.txt- مثال:
cours1.txt→cours1_backup.txt
- مثال:
-
الأوامر المفيدة:
Test-Pathللتحقق من وجود مجلد أو ملفCopy-Itemلنسخ الملفاتRemove-Itemلحذف الملفات أو المجلداتRename-Itemلإعادة تسمية الملفات
نفذ سكربتك عدة مرات للتحقق من أنه متكرر (لا يكسر شيئًا إذا تم تشغيله عدة مرات).
🧪 الخطوة 4 – التحقق التلقائي
أضف إلى سكربتك أمرًا يقوم بـ:
- عد وعرض عدد الملفات في
archives - عرض رسالة "نجاح: تم حفظ جميع الملفات." إذا كان هذا العدد 3
🔐 الخطوة 5 – أذونات NTFS (حقوق الوصول)
-
في مجلد
notes/، أزل من المستخدم الحالي حق القراءة على أحد الملفات. يجب أن يتم ذلك باستخدام PowerShell. -
حاول قراءة هذا الملف باستخدام
Get-Content. ماذا يحدث؟ -
أعد الأذونات بعد ذلك باستخدام PowerShell.
-
امنح مؤقتًا لكل مجلد
archives/إذنًا للقراءة والكتابة فقط (ليس الحذف). -
حاول بعد ذلك حذف ملف من
archives/باستخدامRemove-Item. ماذا تلاحظ؟