يتيح لك Windows PowerShell تنفيذ المهام تلقائيًا على جهاز الكمبيوتر الخاص بك

ماذا لو تمكن جهاز الكمبيوتر الخاص بك من تولي المهام المملة بدلاً منك؟ مع Windows PowerShell، أصبح ذلك ممكنًا. إليك كيفية استخدامه لأتمام المهام اليومية المتكررة التي قد تفضل تجنبها.
روابط سريعة
ما هو ويندوز باورشيل؟
PowerShell هو غلاف سطر أوامر ولغة برمجة نصية مدمجة في نظام التشغيل Windows، تساعدك على أتمتة المهام الإدارية والمتكررة. إذا سبق لك استخدامه، فقد يكون مألوفًا لديك. أما إذا كنت جديدًا عليه، فلا تقلق، فهو سهل الاستخدام.
يتيح لك PowerShell كتابة البرامج النصية لأتمتة المهام اليومية، مثل تنظيم الملفات في مجلدات حسب النوع، أو تنزيل التحديثات أثناء النوم، أو إنشاء تقرير يوضح حجم القرص والمساحة المتبقية على جهاز الكمبيوتر الخاص بك.
بالطبع، يمكن لـ PowerShell فعل الكثير، لكننا في هذا الدليل سنركز على الأساسيات لمساعدتك على بناء فهم قوي لها. سنقوم أيضًا بإنشاء نصوص PowerShell بسيطة، بالإضافة إلى مشروع ممتع ينظم جميع الملفات في مجلد التنزيلات حسب نوعها.
فهم أساسيات PowerShell
لإتقان PowerShell، يجب عليك أولاً فهم مكوناته الرئيسية:
- أوامر Cmdlets:
- أوامر Cmdlets (تُنطق كـ Command-Lets) هي أوامر بسيطة مصممة لأداء مهمة واحدة. على سبيل المثال، يمكنك كتابة Get-Date لاسترداد التاريخ والوقت الحاليين.
- البرمجة النصية وخطوط الأنابيب:
- يتكون البرنامج النصي في PowerShell من سلسلة أوامر يتم توصيلها عبر مشغل توجيه الإخراج (|)، مما يسمح بتمرير مخرجات أحد الأوامر كمدخلات للأمر التالي. على سبيل المثال، يمكنك استخدام Get-Process | Sort-Object CPU -Descending لاسترداد قائمة العمليات وفرزها حسب استهلاك وحدة المعالجة المركزية (CPU).
- الكائنات (Objects):
- يعرض PowerShell النتائج ككائنات بدلاً من نصوص عادية، مما يسهل التعامل مع البيانات. على سبيل المثال، اكتب Get-Date | Select-Object -Property Day, Month, Year لاسترداد التاريخ والوقت الحاليين مع عرض خصائص محددة منها.
- التصفية والتنسيق:
- استخدم Where-Object لتصفية النتائج.
- استخدم Format-Table أو Format-List لتنسيق الإخراج حسب الحاجة.
- على سبيل المثال، للعثور على الملفات التي يتجاوز حجمها 50 ميغابايت في مجلد التنزيلات وعرض أسمائها وأحجامها في جدول، استخدم:
- Get-ChildItem -Path “E:\Downloads” -Recurse | Where-Object {$_.Length -gt 50MB} | Format-Table Name, Length
- بهذا الأسلوب، يمكنك الاستفادة من إمكانات PowerShell القوية لأتمتة المهام وإدارتها بكفاءة.
تتضمن أوامر PowerShell cmdlets الأساسية الأخرى الحصول على مساعدة للتعرف على أي أمر cmdlet، الحصول على القيادة للحصول على قائمة الأوامر، و Get-ChildItem لاستكشاف الملفات والمجلدات في الدليل.
نوصي بشدة بقراءة دليلنا حول أوامر PowerShell الأساسية والبرمجة النصية لـ Windows PowerShell لمعرفة المزيد حول الأوامر وأساسيات البرمجة النصية. سيساعدك ذلك على تجاوز الأساسيات والتعمق في كل ما يمكن أن يفعله PowerShell.
كتابة نصوص PowerShell البسيطة
يمكنك استخدام PowerShell لأتمتة أي شيء تقريبًا، مثل إعادة تسمية الملفات دفعة واحدة لتحقيق الاتساق أو تشغيل التطبيقات تلقائيًا. دعنا نكتب بعض البرامج النصية البسيطة لـ Windows PowerShell لرؤيتها قيد التنفيذ.
إذا واجهت خطأً عند تنفيذ برنامج نصي يتعلق بسياسة التنفيذ، فقد تحتاج إلى السماح بتنفيذ البرنامج النصي مؤقتًا عن طريق تشغيل “Set-ExecutionPolicy – عملية النطاق – تجاوز ExecutionPolicy”
إعادة تسمية الملفات دفعة واحدة في مجلد
يمكنك استخدام PowerShell لإدارة الملفات على جهاز الكمبيوتر الخاص بك، مثل نسخها، ونقلها، وحذفها. كما يمكنك إعادة تسمية مجموعة من الملفات دفعة واحدة وفقًا لنوع معين من الملفات. على سبيل المثال، إليك طريقة إعادة تسمية عدة ملفات نصية باستبدال البادئة oldco بـ newco في أسمائها:
Get-ChildItem -Path “C:\CompanyFiles” -Filter “.txt” | Rename-Item -NewName {$_.Name -replace “oldco”,”newco”}*
في هذا المثال:
- يتم استخدام -Filter “.txt”* لتحديد الملفات النصية فقط.
- يتم استبدال البادئة oldco بـ newco في أسماء جميع الملفات النصية داخل المجلد المحدد.
يمكنك تغيير امتداد الملفات (-Filter) إلى أي نوع آخر مثل .jpg أو .docx للبحث عن أنواع ملفات مختلفة وإعادة تسميتها وفقًا لاحتياجاتك.
تشغيل التطبيقات تلقائيًا
إذا كنت تفتح نفس مجموعة التطبيقات كل يوم، يمكنك كتابة برنامج نصي باستخدام PowerShell لتشغيلها بنقرة واحدة:
# فتح عدة تطبيقات بنقرة واحدة
Start-Process “notepad.exe”
Start-Process “calc.exe”
Start-Process “chrome.exe”
Start-Process “slack.exe”
الصق البرنامج النصي في ملف المفكرة واحفظه باسم LaunchFavoriteApps.ps1. بعد ذلك، ما عليك سوى النقر نقرًا مزدوجًا فوق الملف لتشغيل جميع التطبيقات المدرجة في البرنامج النصي
نسخ الملفات المهمة إلى موقع النسخ الاحتياطي
يمكنك إجراء نسخ احتياطي للملفات المهمة بشكل دوري إلى موقع النسخ الاحتياطي باستخدام البرنامج النصي التالي. تأكد من تعديل مسارات المصدر والوجهة حسب احتياجاتك:
# نسخ محتويات مجلد MyFiles إلى MyFilesBackup على القرص D:
Copy-Item -Path “C:\Documents\MyFiles” -Destination “D:\MyFilesBackup” -Recurse
كتابة برنامج PowerShell لتنظيم الملفات اليومية تلقائيًا
نظرًا للعدد الكبير من الملفات التي نقوم بتنزيلها يوميًا، قد يصبح مجلد التنزيلات في حالة فوضى بسرعة، مع تكدس أنواع متعددة من الملفات. لحل هذه المشكلة، يمكننا كتابة برنامج PowerShell لتنظيم الملفات التي تم تنزيلها في مجلدات مخصصة حسب نوع الملف في نهاية كل يوم.
افتح ملف Notepad جديدًا والصق البرنامج النصي التالي. تأكد من تعديل مسار المجلد المصدر في البرنامج النصي ليطابق مسار مجلد التنزيلات الخاص بك:
# تغيير مسار المجلد المصدر
$sourcePath = “E:\Downloads”
# إضافة أسماء المجلدات لتمثيل أنواع الملفات
$fileTypes = @{
“Documents” = @(“*.docx”, “*.pdf”, “*.txt”)
“Images” = @(“*.jpg”, “*.png”, “*.gif”)
“Media” = @(“*.mp4”, “*.mp3”, “*.mov”)
“Zip” = @(“*.zip”, “*.rar”)
“ISO” = @(“*.iso”)
“Others” = @(“*”)
}
# المرور عبر كل نوع مجلد وتحضير مجلد الوجهة لتنظيم الملفات
foreach ($folder in $fileTypes.Keys) {
# إنشاء مسار المجلد الوجهة
$destPath = Join-Path -Path $sourcePath -ChildPath $folder
# التحقق من وجود المجلد الوجهة وإنشاؤه إذا لم يكن موجودًا
if (!(Test-Path -Path $destPath)) {
New-Item -ItemType Directory -Path $destPath | Out-Null
}
# نقل الملفات المتوافقة من المجلد المصدر إلى المجلد الوجهة بناءً على نوع الملف
foreach ($pattern in $fileTypes[$folder]) {
Get-ChildItem -Path $sourcePath -Filter $pattern -File -ErrorAction SilentlyContinue | ForEach-Object {
try {
Move-Item -Path $_.FullName -Destination $destPath -Force -ErrorAction Stop
Write-Output “تم نقل: $($_.FullName) إلى $destPath”
} catch {
Write-Warning “فشل نقل الملف: $($_.FullName). الخطأ: $_”
}
}
}
}
Write-Output “تم تنظيم الملفات بنجاح!”
لحفظ الملف، اذهب إلى ملف > حفظ باسم، واكتب تنظيم DownloadsFolder.ps1 كاسم للملف. ثم اختر جميع الملفات كنوع للملف. بعد ذلك، انقر على حفظ.
لتشغيل البرنامج النصي، انقر نقرًا مزدوجًا على ملف تنظيم DownloadsFolder.ps1.
جدولة المهام وتنفيذها تلقائيًا
كتابة البرنامج النصي هي خطوة أساسية في عملية الأتمتة، ولكن الجزء الأهم هو التأكد من أن البرنامج النصي يمكنه تنفيذ نفسه تلقائيًا عند الحاجة. للقيام بذلك، يمكننا إنشاء مهام مجدولة لتشغيل البرنامج النصي بشكل دوري، مثل يوميًا أو حسب الحاجة.
افتح PowerShell، ثم انسخ والصق النص التالي واضغط Enter. تأكد من استبدال 'J:\OrganizeDownloadsFolder.ps1'
بالمسار الكامل لملف البرنامج النصي تنظيم DownloadsFolder.ps1.
$action = New-ScheduledTaskAction -Execute “PowerShell.exe” -Argument “-File ‘J:\OrganizeDownloadsFolder.ps1′”
$trigger = New-ScheduledTaskTrigger -Daily -At “5:00 PM”
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName “OrganizeDownloadsFolderDaily”
بمجرد الانتهاء، اضغط Enter. سيقوم هذا الأمر بإنشاء مهمة مجدولة في جدولة المهام لتشغيل البرنامج النصي وتنظيم الملفات يوميًا في الساعة 5:00 مساءً. إذا كنت تفضل وقتًا آخر، يمكنك تعديله في البرنامج النصي أعلاه.
بالإضافة إلى ذلك، يمكنك استخدام PowerShell لأتمتة العديد من المهام اليومية الأخرى، مثل مراقبة المساحة على محرك الأقراص وتنبيهك عند نفاد المساحة الحرة، أو جمع مستندات PDF محمية بكلمة مرور، وحتى تطبيق خلفيات ديناميكية من مجلد الصور.