أتمتة المهام المتكررة عبر البرامج النصية PowerShell التي تم إنشاؤها من الذكاء الاصطناعى


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

PowerShell 101: أتمتة المهام لنظام التشغيل Windows

PowerShell عبارة عن قذيفة سطر أوامر على حد سواء لغة البرمجة النصية المدمجة في Windows تتيح إمكانيات إدارة النظام القوية وأتمتة ، كما توضح Microsoft.

في الممارسة العملية ، يمكنك إنشاء برامج نصية (ملفات قائمة بذاتها تحتوي على أوامر وتعليمات يمكن تنفيذها تلقائيًا) تقوم بكل شيء من عمليات الملفات البسيطة إلى مهام إدارة النظام المعقدة.

هناك عدد لا يحصى من البرامج النصية الجاهزة على الإنترنت والتي يمكنها التعامل مع المهام المشتركة. على سبيل المثال ، يحتوي مستودع البرامج النصية PowerShell على أكثر من 500 نص برمجة مجانية للمهام التي تتراوح من إعدادات النظام إلى عمليات الملفات. يمكنك العثور على البرامج النصية التي تتحقق من مساحة محرك الأقراص ، وسرد البرامج المثبتة ، وحتى تنظيم الصور حسب التاريخ.

ولكن على الرغم من أن البرامج النصية الممتازة مفيدة ، إلا أن القوة الحقيقية لـ PowerShell يتم فتحها عند إنشاء نصوص مخصصة مصممة لتلبية احتياجاتك الفريدة ، وهذا هو المكان الذي تأتي فيه الذكاء الاصطناعي.

باستخدام منظمة العفو الدولية لإنشاء نصوص مخصصة

اسمحوا لي أن أشرح كيف أقوم بإنشاء برامج نصية PowerShell لأتمتة Assactings دون معرفة PowerShell فعليًا ، باستخدام AI على مثال عملي.

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

بدلاً من قضاء ساعات في تعلم بناء جملة PowerShell أو البحث عن البرنامج النصي المثالي مسبقًا ، التفتت إلى ChatGpt مع وصف واضح لما أحتاجه. إليكم كيف دفعت الذكاء الاصطناعي:

chatgpt powershell موجه 1

العناصر الرئيسية التي تأكدت من تضمينها في مطالبي هي:

  • ماذا يجب أن يحدث مع الملفات التي لا تتطابق مع فئاتي
  • المهمة الدقيقة التي أردت إنجازها (تنظيم الملفات بامتداد)
  • الفئات المحددة وأنواع الملفات لكل فئة

بالطبع ، أبرزت الحقيقة في موجه منظمة العفو الدولية أن هدفي هو إنشاء نص PowerShell (على عكس ، دعنا نقول ، نص Bash) في البداية.

في غضون ثوانٍ ، قام الذكاء الاصطناعي بإنشاء هذا البرنامج النصي PowerShell لأتمتة المهام بالنسبة لي:

# Define the source folder as the current directory where the script is executed
$sourceFolder = $PSScriptRoot

# Define category folders and their associated file extensions
$categories = @
"Images" = @(".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp", ".svg", ".ico", ".raw", ".cr2", ".nef", ".heic", ".psd", ".ai", ".eps")
"Documents" = @(".pdf", ".docx", ".doc", ".txt", ".rtf", ".xlsx", ".xls", ".pptx", ".ppt", ".odt", ".ods", ".odp", ".md", ".csv", ".json", ".xml", ".html", ".htm", ".log", ".tex", ".epub", ".mobi")
"Audio" = @(".mp3", ".wav", ".aac", ".flac", ".ogg", ".wma", ".m4a", ".mid", ".midi", ".aiff", ".alac", ".ape", ".opus", ".amr", ".au", ".voc")
"Video" = @(".mp4", ".avi", ".mov", ".wmv", ".mkv", ".flv", ".webm", ".m4v", ".mpg", ".mpeg", ".3gp", ".3g2", ".ts", ".vob", ".ogv", ".divx", ".asf", ".rm", ".rmvb")
"Archives" = @(".zip", ".rar", ".7z", ".tar", ".gz", ".bz2", ".xz", ".cab", ".iso", ".tgz", ".tbz2", ".lzh", ".dmg", ".pkg", ".deb", ".rpm")
"Code" = @(".py", ".js", ".html", ".css", ".java", ".c", ".cpp", ".cs", ".php", ".rb", ".go", ".swift", ".sql", ".ps1", ".sh", ".bat", ".vbs", ".ts", ".jsx", ".r", ".pl", ".lua")
"Executables" = @(".exe", ".msi", ".app", ".apk", ".dll", ".bin", ".com", ".jar", ".gadget", ".wsf", ".appx", ".appxbundle")
"Other" = @()

# Create category folders if they don't exist
foreach ($category in $categories.Keys)
$categoryPath = Join-Path -Path $sourceFolder -ChildPath $category
if (-not (Test-Path -Path $categoryPath)) Out-Null
Write-Host "Created folder: $category"

# Get all files in the source folder (non-recursive)
$files = Get-ChildItem -Path $sourceFolder -File | Where-Object $_.Name -ne $MyInvocation.MyCommand.Name

# Counter for moved files
$movedFiles = 0
$totalFiles = $files.Count

Write-Host "Starting to organize $totalFiles files..."

# Process each file
foreach ($file in $files)
$extension = $file.Extension.ToLower()
$targetCategory = "Other"

# Determine which category the file belongs to
foreach ($category in $categories.Keys)
if ($category -eq "Other") continue
if ($categories[$category] -contains $extension)
$targetCategory = $category
break

# Move the file to the appropriate category folder
$targetPath = Join-Path -Path $sourceFolder -ChildPath $targetCategory
$targetFile = Join-Path -Path $targetPath -ChildPath $file.Name

# Check if target file already exists and handle accordingly
if (Test-Path -Path $targetFile)
$baseName = [System.IO.Path]::GetFileNameWithoutExtension($file.Name)
$newName = "$baseName`_$(Get-Random)$extension"
$targetFile = Join-Path -Path $targetPath -ChildPath $newName

Move-Item -Path $file.FullName -Destination $targetFile
$movedFiles++

# Show progress
$percentComplete = [math]::Round(($movedFiles / $totalFiles) * 100, 2)
Write-Progress -Activity "Organizing Files" -Status "$movedFiles of $totalFiles files processed ($percentComplete%)" -PercentComplete $percentComplete

Write-Host "File organization complete! Moved $movedFiles files into categories."

كما ترون ، يتم التعليق على الرمز بأكمله بشكل جيد ، لذلك من الممكن في الواقع معرفة ما تفعله الأجزاء الفردية بسهولة نسبية ، وهو أمر رائع إذا كنت ترغب في تعلم PowerShell والتعديلات اليدوية بنفسك.

نص البروتوباد باورشيل

لتحويل هذا الرمز إلى نص قابل للاستخدام ، أنا ببساطة نسخ كتلة الكود بأكمله من دردشة الذكاء الاصطناعي وفتح Windows Notepad (على الرغم من أن أي محرر نصوص سيعمل بشكل جيد).

تشغيل مع PowerShell

بعد لصق الكود ، أنا حفظ الملف مع اسم وصفي و .PS1 تمديد (مثل “تنظيم files.ps1”). لقد وضعت هذا البرنامج النصي مباشرة في المجلد مع ملفاتي المستردة وقمت بتشغيله بالنقر بزر الماوس الأيمن على الملف والاختيار تشغيل مع PowerShell.

ملفات منظمة Windows

في أي وقت من الأوقات ، تم تنظيم الآلاف من الملفات المنتشرة بدقة في مجلدات مناسبة.

أتمتة البرامج النصية التي تم إنشاؤها بواسطة AI مع جدولة المهام

حتى أفضل من نص PowerShell الذي تم إنشاؤه AI-Ai-Crepated هو الذي سيؤدي إلى أتمتة مهام Windows دون الاضطرار إلى التفكير في الأمر!

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

PowerShell Chatgpt موجه 2

قامت الذكاء الاصطناعى بإنشاء هذا البرنامج النصي الموفرة للعيش:

# Script to remind user to take regular screen breaks

# Load required assemblies for notifications
Add-Type -AssemblyName System.Windows.Forms

# Function to show break reminder notification
function Show-BreakReminder Get-Random

# Create and configure the notification
$notification = New-Object System.Windows.Forms.NotifyIcon
$notification.Icon = [System.Drawing.SystemIcons]::Information
$notification.BalloonTipTitle = "Wellness Reminder"
$notification.BalloonTipText = $randomMessage
$notification.Visible = $true

# Show notification for 10 seconds
$notification.ShowBalloonTip(10000)

# Clean up after a delay
Start-Sleep -Seconds 12
$notification.Dispose()

# Display an initial notification
Show-BreakReminder

Write-Host "Break reminder displayed. Set this script to run hourly using Task Scheduler."

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

جدولة المهام مهمة أساسية جديدة

مرة أخرى ، قمت بحفظ البرنامج النصي PowerShell الذي تم إنشاؤه AIS كملف .PS1 ، ثم فتحت جدولة المهام من ابدأ القائمة وخلق أ مهمة أساسية جديدة مع الزناد اليومي.

تحرير جدولة مهمة المشغل

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

جدولة المهام خصائص الزناد

كنت بحاجة أيضًا إلى تكوين إعدادات الإجراء بشكل صحيح. في نافذة الخصائص ، انتقلت إلى الإجراءات علامة التبويب وتحديدها يحرر. لحقل البرنامج/البرنامج النصي ، دخلت powershell.exe بدلا من المسار المباشر إلى السيناريو الخاص بي. في حقل الإضافات ، دخلت -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Users\David\Desktop\eye-saver.ps1"والتي تتضمن كل من معلمات التنفيذ والمسار الكامل لبرنامج النصي الخاص بي.

نص موفر العين PowerShell

بعد إجراء هذه التغييرات ، قمت بالنقر فوق نعم لحفظ إعدادات الإجراء ، ثم النقر فوق نعم مرة أخرى على نافذة الخصائص لإنهاء جميع التغييرات. وكانت النتيجة تستحق الجهد!

إن جمال نهج AI هذا هو أنه بمجرد إعداد عدد قليل من المهام الآلية عبر البرامج النصية PowerShell ، يبدأ جهاز الكمبيوتر الخاص بك في العمل من أجلك في الخلفية ، والقيام بكل هذه المفعولات المفيدة الصغيرة التي كانت تتطلب منك أن تتذكر أو ضبط الإنذارات الخارجية.

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

جميع الصور ولقطات شاشة ديفيد موريلو.

اترك تعليقاً

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

زر الذهاب إلى الأعلى