كيفية استخراج ملفات ZIP تلقائيًا في نظام التشغيل ويندوز 10

لا يقوم نظام التشغيل Windows 10 باستخراج كل ملف ZIP عند وصوله افتراضيًا. يمكن لـ PowerShell المدمج فيه القيام بذلك: حيث يراقب البرنامج الموضح أدناه مجلد تنزيل واحد، وينتظر حتى يتوقف ملف ZIP جديد عن التغيير، ثم يستخرجه إلى مجلد يحمل نفس الاسم. يبقى ملف ZIP الأصلي في مكانه، ولا يتم استبدال أي ملف موجود في وجهة الاستخراج.

استخدم خاصية الاستخراج التلقائي فقط للملفات المضغوطة من مصادر موثوقة. تحقق من الملفات قبل فتحها أو تشغيلها.

افتح مستكشف الملفات على قسم التنزيلات مع ظهور ملف مضغوط (ZIP) في قائمة الملفات.
يحتوي ملف التنزيلات على ملف ZIP الذي سيقوم المراقب بمراقبته.

1. تأكد من مجلد التنزيلات

في مستكشف الملفات، أدخل %USERPROFILE%\Downloadsالمسار في شريط العناوين. إذا كان متصفحك يحفظ الملفات في مكان آخر، فاستخدم مسار ذلك المجلد بدلاً من ذلك. يراقب هذا البرنامج مجلدًا واحدًا فقط ولا يفحص المجلدات الفرعية.

احفظ النص البرمجي في Watch-Zips.ps1مجلد التنزيلات كما هو موضح في الأمثلة أدناه. إذا كنت تستخدم مجلدًا آخر، فغيّر السطر الأول من النص البرمجي إلى مساره الكامل.

برنامج المفكرة يعرض مسار مراقبة PowerShell، وفلتر اسم ملف ZIP، وإعدادات FileSystemWatcher.
يشير البرنامج النصي إلى مجلد التنزيلات ويقوم بتصفية ملفات .zip.

2. إنشاء برنامج المراقبة

افتح برنامج المفكرة، والصق الكود، ثم احفظه باسم Watch-Zips.ps1. في خانة "حفظ باسم"، اختر " جميع الملفات" حتى لا يضيف برنامج المفكرة أي ملفات إضافية .txt. يستمع البرنامج النصي إلى ملفات ZIP التي تم إنشاؤها أو إعادة تسميتها، ويتحقق من توقف حجم الملف عن النمو وأنه غير مقفل، ثم يستخرجه إلى مجلد مؤقت قبل نقله إلى مكانه. توضح وثائق Microsoft FileSystemWatcher هذه الأحداث وحدود مخزن الأحداث الخاص بها.

$folder = Join-Path $env:USERPROFILE 'Downloads'
if (-not (Test-Path -LiteralPath $folder)) { throw "Folder not found: $folder" }

$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $folder
$watcher.Filter = '*.zip'
$watcher.IncludeSubdirectories = $false
$watcher.NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
$watcher.EnableRaisingEvents = $true
Register-ObjectEvent $watcher Created -SourceIdentifier ZipCreated | Out-Null
Register-ObjectEvent $watcher Renamed -SourceIdentifier ZipRenamed | Out-Null
Write-Host "Watching $folder for ZIP files. Close this window to stop."

while ($true) {
    $signal = Wait-Event -Timeout 2
    if ($null -eq $signal) { continue }
    $zipPath = $signal.SourceEventArgs.FullPath
    Remove-Event -EventIdentifier $signal.EventIdentifier

    $lastLength = -1L
    $stable = 0
    for ($i = 0; $i -lt 600 -and $stable -lt 4; $i++) {
        try {
            $length = (Get-Item -LiteralPath $zipPath -ErrorAction Stop).Length
            $stream = [IO.File]::Open($zipPath, [IO.FileMode]::Open, [IO.FileAccess]::Read, [IO.FileShare]::None)
            $stream.Dispose()
            if ($length -gt 0 -and $length -eq $lastLength) { $stable++ } else { $stable = 0 }
            $lastLength = $length
        } catch { $stable = 0 }
        Start-Sleep -Seconds 1
    }
    if ($stable -lt 4) { Write-Warning "File stayed busy; skipped: $zipPath"; continue }

    $name = [IO.Path]::GetFileNameWithoutExtension($zipPath)
    $destination = Join-Path $folder $name
    if (Test-Path -LiteralPath $destination) {
        Write-Warning "Destination exists; skipped: $destination"
        continue
    }
    $temporary = "$destination.extracting-$([guid]::NewGuid().ToString('N'))"
    try {
        Expand-Archive -LiteralPath $zipPath -DestinationPath $temporary -ErrorAction Stop
        Move-Item -LiteralPath $temporary -Destination $destination -ErrorAction Stop
        Write-Host "Extracted to $destination"
    } catch {
        if (Test-Path -LiteralPath $temporary) { Remove-Item -LiteralPath $temporary -Recurse -Force -ErrorAction SilentlyContinue }
        Write-Warning "Could not extract $zipPath : $($_.Exception.Message)"
    }
}
نافذة برنامج المفكرة تعرض عمليات فحص حجم ملفات ZIP الخاصة بـ PowerShell واختبار فتح ملف حصري.
يقوم المراقب بالتحقق من أن ملف ZIP مستقر وغير مقفل قبل استخراجه.

3. اختبره قبل إخفاء النافذة

افتح برنامج PowerShell وقم بتشغيل ما يلي:

powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File "$env:USERPROFILE\Downloads\Watch-Zips.ps1"

انتظر ظهور رسالة "جارٍ المراقبة"، واترك النافذة مفتوحة، ثم نزّل أو انسخ ملف ZIP صغيرًا موثوقًا إلى مجلد التنزيلات. سيظهر مجلدٌ يحمل نفس الاسم بجانبه. لا يقوم البرنامج بفحص ملفات ZIP الموجودة مسبقًا عند بدء تشغيله؛ لذا جرّبه بملف جديد أو منسوخ حديثًا.

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

وحدة تحكم PowerShell تعرض برنامج المراقبة الذي يستمع إلى ملفات ZIP في مجلد التنزيلات.
أبقِ نافذة المراقبة مفتوحة أثناء اختبار أرشيف جديد.
يعرض مستكشف الملفات ملف SampleData.zip بجانب مجلد SampleData المستخرج.
يبقى ملف ZIP في مجلد التنزيلات بجوار المجلد الذي تم استخراجه إليه.

4. ابدأ تشغيل المراقب عند تسجيل الدخول

افتح "مجدول المهام" من قائمة "ابدأ" واختر " إنشاء مهمة" . في قسم "عام"، سمِّها " مراقبة ملفات ZIP التي تم تنزيلها" وحدد "التشغيل فقط عند تسجيل دخول المستخدم" . في قسم "المشغلات"، اختر "جديد" واضبط "بدء المهمة" على "عند تسجيل دخول حسابك".

في قسم "الإجراءات"، اختر "جديد" ، ثم حدد "بدء برنامج" ، وأدخل powershell.exeاسم البرنامج. في "إضافة وسيطات"، استخدم هذا السطر، مع استبدال Alexبمجلد ملف تعريف Windows الخاص بك:

-NoProfile -WindowStyle Hidden -ExecutionPolicy RemoteSigned -File "C:\Users\Alex\Downloads\Watch-Zips.ps1"

في الإعدادات، اختر " عدم بدء مثيل جديد إذا كانت المهمة قيد التشغيل بالفعل"، ثم احفظ التغييرات. راجع دليل "مجدول المهام" من مايكروسوفت للاطلاع على مُشغّلات تسجيل الدخول. RemoteSignedينطبق هذا على عملية PowerShell التي تم تشغيلها؛ ولا يزال بإمكان سياسة المؤسسة حظر البرنامج النصي. لا تُضعف سياسة مُدارة. راجع دليل سياسة التنفيذ من مايكروسوفت .

قم بإنشاء مربع حوار "إنشاء مهمة" في علامة التبويب "الإجراءات" في "جدولة المهام"، مع ضبط PowerShell لتشغيل Watch-Zips.ps1.
أضف برنامج PowerShell النصي كإجراء للمهمة.
يعرض مربع حوار "إنشاء مهمة" في "جدولة المهام" مُشغّل "عند تسجيل الدخول" المُفعّل للمستخدم الحالي.
ابدأ تشغيل برنامج المراقبة عند تسجيل دخول حساب ويندوز.

5. التحقق أو الإيقاف أو استكشاف الأخطاء وإصلاحها

في مكتبة جدولة المهام، حدد المهمة واختر تشغيل . تأكد من أن حالتها " قيد التشغيل" ، ثم اختبرها باستخدام ملف ZIP موثوق آخر. لإيقافها، انقر بزر الماوس الأيمن على المهمة واختر إنهاء ؛ اختر تعطيل لمنع تشغيلها عند تسجيل دخولك التالي.

في حال فشل الاستخراج، شغّل البرنامج النصي ظاهرًا لقراءة تحذيراته، وتأكد من المجلد المُراقب، وانتظر حتى يكتمل التنزيل. بالنسبة للأرشيفات الموجودة بالفعل في مجلد التنزيلات، استخدم خاصية " استخراج الكل " في مستكشف الملفات أو PowerShell . تشير وثائقExpand-Archive Microsoft الخاصة بـ Expand-Archive إلى حد أقصى لحجم الملف يبلغ 2 جيجابايت في واجهة برمجة تطبيقات .NET المستخدمة.

مكتبة جدولة المهام تعرض مهمة تنزيل ملفات ZIP من الساعة مع حالة التشغيل.
تأكد من أن برنامج المراقبة المجدول قيد التشغيل.

اترك تعليقاً

حوّل الصور إلى لوحات ورسومات ورسوم متحركة باستخدام تطبيق FotoSketcher

حوّل الصور إلى لوحات ورسومات ورسوم متحركة باستخدام تطبيق FotoSketcher

حوّل صورتك إلى لوحة فنية، أو رسم تخطيطي بالقلم الرصاص، أو رسم كاريكاتوري باستخدام برنامج FotoSketcher Studio. تعرّف على كيفية اختيار التأثير، وضبط المعاينة، وحفظ عملك الفني.

تحليل وتحديد ملفات الصوت بالتفصيل باستخدام مُعرّف الصوت

تحليل وتحديد ملفات الصوت بالتفصيل باستخدام مُعرّف الصوت

تعرف على ما يكشفه برنامج Audio Identifier عن معدل البت، والمشفرات، والعلامات، وكيف يعمل سير العمل القديم الخاص به، وما هي الأدوات الحالية التي تفحص الملفات أو تحدد الأغاني.

فهرس صوري: منظم صور مفتوح المصدر لنظام ويندوز

فهرس صوري: منظم صور مفتوح المصدر لنظام ويندوز

برنامج My Photo Index هو برنامج قديم لنظام ويندوز يُستخدم لتصنيف الصور المحلية وتقييمها واستعراضها. راجع ميزاته الموثقة، وحدود توافقه، وبديلًا مُحدّثًا له.

تغيير خصائص الملفات والمجلدات والتواريخ والأوقات باستخدام أداة تغيير الخصائص

تغيير خصائص الملفات والمجلدات والتواريخ والأوقات باستخدام أداة تغيير الخصائص

تعرف على كيفية استخدام برنامج تغيير السمات لتحرير سمات ملفات ويندوز والطوابع الزمنية، وتحديث تواريخ صور JPEG EXIF، ومعاينة التغييرات المجمعة بأمان.

كيفية تعيين خلفية شاشة مختلفة على كل شاشة في نظام التشغيل ويندوز 10

كيفية تعيين خلفية شاشة مختلفة على كل شاشة في نظام التشغيل ويندوز 10

قم بتعيين خلفية شاشة منفصلة لكل شاشة من شاشات نظام التشغيل Windows 10، وحدد الشاشات، واضبط ملاءمة الصورة، وقم باستكشاف أخطاء خيارات الشاشة المفقودة وإصلاحها.

pViewer: عارض صور بسيط وقارئ مانغا وقصص مصورة

pViewer: عارض صور بسيط وقارئ مانغا وقصص مصورة

تعرف على وظيفة برنامج pViewer، وكيفية عمل وضعيات الصور والقصص المصورة فيه، وأي إصدار من نظام ويندوز يجب تنزيله، وكيف تختلف الإصدارات القديمة عن الإصدارات المعاد كتابتها.

NeoDownloader: اضبط المعلمات وقم بتنزيل الصور دفعة واحدة من مواقع الويب

NeoDownloader: اضبط المعلمات وقم بتنزيل الصور دفعة واحدة من مواقع الويب

تعرف على كيفية إنشاء مشروع NeoDownloader، واختيار نطاق الزحف، وتعيين مرشحات الصور والوجهة، ومراجعة عمليات التنزيل المجمعة.

كيفية التبديل إلى خلفية سطح المكتب التالية باستخدام مفتاح اختصار في نظامي التشغيل ويندوز 7 و 8

كيفية التبديل إلى خلفية سطح المكتب التالية باستخدام مفتاح اختصار في نظامي التشغيل ويندوز 7 و 8

قم بإعداد عرض شرائح لنظام التشغيل Windows 7 أو 8، وأنشئ اختصارًا صغيرًا بلغة VBScript، وقم بتعيين مفتاح اختصار لوحة المفاتيح للانتقال إلى خلفية الشاشة التالية.

XnConvert: تطبيق التأثيرات وتحويل تنسيقات الصور دفعة واحدة

XnConvert: تطبيق التأثيرات وتحويل تنسيقات الصور دفعة واحدة

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

تتبع ساعات العمل واستخدام الكمبيوتر باستخدام ManicTime

تتبع ساعات العمل واستخدام الكمبيوتر باستخدام ManicTime

تعرف على كيفية قيام ManicTime بتتبع استخدام التطبيق، ووقت النشاط ووقت الخمول، والمستندات، ثم قم بتحويل سجل نشاطك إلى علامات للمشاريع وجداول زمنية.