البرمجة

أتمتة دمج وتنظيف ملفات CSV باستخدام PowerShell في Windows

في سعيك لأتمتة عمليات دمج وتنظيف ملفات CSV في بيئة Windows 7/8، يمكنك الاستعانة بلغة البرمجة Batch أو PowerShell لتحقيق هذه المهمة. سأقدم لك سيناريو لتحقيق الأهداف التي وضعتها، مع توجيهات تفصيلية لكل خطوة.

للبداية، يمكنك إنشاء ملف دفعي Batch (بامتداد .bat) أو نص PowerShell (بامتداد .ps1) لتنفيذ الخطوات المطلوبة. سأقدم لك السيناريو باستخدام PowerShell نظرًا لقوته في معالجة البيانات.

powershell
# خطوة 1: دمج ملفات Automobiles $automobilesPath = ".\Vehicles\Automobiles" $mergedAutomobilesPath = ".\Vehicles\Automobiles.csv" Get-ChildItem "$automobilesPath\*.csv" | ForEach-Object { $content = Get-Content $_.FullName | Select-Object -Skip 1 Add-Content $mergedAutomobilesPath $content } # خطوة 2: تنظيف Automobiles.csv $automobilesData = Import-Csv $mergedAutomobilesPath $automobilesData = $automobilesData | Where-Object { $_.Fuel_Type -ne "Diesel" } $automobilesData | Export-Csv $mergedAutomobilesPath -NoTypeInformation # خطوة 3: دمج ملفات Trucks $trucksPath = ".\Vehicles\Trucks" $mergedTrucksPath = ".\Vehicles\Trucks.csv" Get-ChildItem "$trucksPath\*.csv" | ForEach-Object { $content = Get-Content $_.FullName | Select-Object -Skip 1 Add-Content $mergedTrucksPath $content } # خطوة 4: تنظيف Trucks.csv $trucksData = Import-Csv $mergedTrucksPath $trucksData = $trucksData | Where-Object { $_.Fuel_Type -ne "Diesel" } $trucksData | Export-Csv $mergedTrucksPath -NoTypeInformation # خطوة 5: إنشاء ملف Vehicles.xls $vehiclesXlsPath = ".\Vehicles\Vehicles.xls" $automobilesData | Export-Excel -Path $vehiclesXlsPath -WorksheetName "Automobiles" -AutoSize $trucksData | Export-Excel -Path $vehiclesXlsPath -WorksheetName "Trucks" -AutoSize -Append

يرجى تعديل المسارات والملفات حسب توزيع مجلداتك الفعلي. يُفضل تشغيل هذا السيناريو في بيئة اختبار أولاً لضمان توافقه مع احتياجاتك.

هذا السيناريو يستخدم PowerShell للتلاعب في الملفات CSV وتنفيذ العمليات المطلوبة. يمكنك تنفيذ البرنامج النصي باستخدام PowerShell على جهاز الكمبيوتر الخاص بك. يجب أن يساعد هذا البرنامج النصي في الحصول على النتائج المطلوبة دون تجميد أو مشاكل في التنفيذ.

المزيد من المعلومات

بالطبع، دعوني أقدم لك مزيدًا من التفاصيل حول السيناريو الذي قدمته وكيف يعمل كل جزء في تنفيذ المهام المطلوبة.

خطوة 1: دمج ملفات Automobiles

في هذه الخطوة، نقوم بالانتقال إلى مجلد “Automobiles” في المجلد “Vehicles”. ثم نقوم بفحص جميع ملفات CSV داخل هذا المجلد باستخدام cmdlet Get-ChildItem. لكل ملف، نقوم بقراءة محتواه باستخدام Get-Content ونقوم بتجاوز السطر الأول الذي يحتوي على رأس الجدول. نقوم بإضافة المحتوى المقروء إلى ملف جديد يُسمى “Automobiles.csv”.

خطوة 2: تنظيف Automobiles.csv

في هذه الخطوة، نقوم بقراءة محتوى ملف “Automobiles.csv” الذي قمنا بدمجه في الخطوة الأولى باستخدام Import-Csv. نستخدم cmdlet Where-Object لاستبعاد الصفوف التي تحتوي على “Diesel” في العمود السادس (Fuel_Type). ثم نقوم بحفظ البيانات المنقاة مرة أخرى في “Automobiles.csv”.

خطوة 3: دمج ملفات Trucks

تكرر هذه الخطوة تقريبًا مثل خطوة دمج Automobiles. ننتقل إلى مجلد “Trucks” ونقوم بدمج محتوى ملفات CSV داخلها في ملف جديد يُسمى “Trucks.csv”.

خطوة 4: تنظيف Trucks.csv

في هذه الخطوة، نقوم بقراءة محتوى ملف “Trucks.csv” الذي قمنا بدمجه في الخطوة الثالثة. نستخدم cmdlet Where-Object لاستبعاد الصفوف التي تحتوي على “Diesel” في العمود السادس (Fuel_Type). ثم نقوم بحفظ البيانات المنقاة مرة أخرى في “Trucks.csv”.

خطوة 5: إنشاء ملف Vehicles.xls

في هذه الخطوة، نقوم بإنشاء ملف Excel جديد باستخدام PowerShell Module “ImportExcel”. نستورد البيانات من ملفي “Automobiles.csv” و “Trucks.csv” باستخدام Import-Excel، ثم نقوم بتصديرها إلى علامات تبويب (tabs) منفصلة داخل ملف Excel بواسطة cmdlet Export-Excel. الملف النهائي يسمى “Vehicles.xls” ويحتوي على علامات تبويب للسيارات والشاحنات.

تنفيذ السيناريو

يمكنك حفظ الشيفرة البرمجية في ملف نصي باسم “AutomateVehicles.ps1″، ثم تنفيذها عبر PowerShell بكتابة .\AutomateVehicles.ps1 في موجه الأوامر. يجب أن تكون PowerShell قد تمكنت من التنفيذ على النظام الخاص بك.

من خلال هذا السيناريو، يمكنك أتمتة عمليات دمج وتنظيف الملفات CSV بشكل فعال وفعّال، مع إمكانية إنشاء ملف Excel نهائي يجمع بين السيارات والشاحنات.

مقالات ذات صلة

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

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!