متى يجب عليك تضمين مقطع فيديو ومتى يجب عليك ربط مقطع فيديو في PowerPoint؟
هل يجب عليك تضمين مقطع فيديو أو ربطه في PowerPoint؟ إذا كنت تتساءل أيضًا عن ذلك، فإن المقالة أدناه ستعطيك الإجابة.
ماذا لو كان جهاز الكمبيوتر الخاص بك قادرًا على التعامل مع المهام المملة نيابةً عنك؟ مع Windows PowerShell، هذا ممكن. فيما يلي كيفية استخدام PowerShell لأتمتة المهام اليومية المتكررة التي لا يرغب أحد في القيام بها مرارًا وتكرارًا.
جدول المحتويات
Microsoft PowerShell هي أداة سطر أوامر ولغة برمجة نصية وهي أداة قوية للمسؤولين، حيث تسمح لك بأتمتة مجموعة واسعة من المهام لأجهزة الكمبيوتر والشبكات. يحتوي PowerShell على مكونات موجه الأوامر وهو مبني على إطار عمل .NET. إذا كنت تقرأ عن WebTech360، فأنت بحاجة إلى معرفة أن PowerShell هي الأداة المفضلة لمسؤولي تكنولوجيا المعلومات لإدارة الشبكات الكبيرة.
إن تعلم كيفية استخدام PowerShell سوف يبسط العديد من المهام اليومية المملة. يمكنك أيضًا إجراء تغييرات على مستوى النظام عبر الشبكة دون الحاجة إلى ضبط كل خادم على حدة. أصبح PowerShell جزءًا أساسيًا من تشغيل بيئات السحابة الهجينة .
يحتوي PowerShell على العديد من الاستخدامات المختلفة لمساعدتك على العمل بكفاءة أكبر والحفاظ على تشغيل شبكتك بكفاءة. تتضمن الاستخدامات الأساسية ما يلي: جدولة التحديثات اليومية على الأنظمة، وإنشاء التقارير للعمليات الحالية، والخدمات الدورية، والمزيد. من الصحيح أن العديد من هذه المهام يمكن إجراؤها من خلال واجهة المستخدم الرسومية، ولكن الهدف من PowerShell هو القيام بها بشكل أسرع.
إذا كان لديك مهمة صيانة منتظمة تستغرق بضع دقائق للإعداد، فيمكنك برمجة نفس الوظيفة في أمر PowerShell واحد باسم. لذا في المرة القادمة، عندما تفتح هذا البرنامج النصي، سيتم تشغيله في الخلفية. إن إتقان منطق برمجة PowerShell، وفهم كيفية عمل الكائنات والمتغيرات، وتنفيذها بذكاء على شبكتك سيجعلك تتساءل لماذا لم تستخدم PowerShell في وقت أقرب.
سيغطي هذا البرنامج التعليمي أساسيات PowerShell، والذي سيكون مفيدًا للمبتدئين في مجال تكنولوجيا المعلومات، وخاصةً إذا كنت على دراية بموجه الأوامر في Windows. ستقدم المقالة كيفية استخدام الأدوات والأوامر الأساسية، وكيفية التعامل مع الملفات والمجلدات، وفهم الكائنات، واستخدام المتغيرات، وإدارة الخوادم البعيدة.
بعد إصدار Windows NT، أصبح CMD.EXE أداة سطر الأوامر لنظام Windows. على الرغم من أن CMD.EXE ورث بعض المكونات من سابقه في نظام التشغيل DOS (COMMAN.COM)، إلا أنه كان لا يزال يعتمد على لغة برمجة نصية "بدائية" إلى حد ما: استخدام ملفات أوامر Windows (.CMD و.BAT). أدى إضافة Windows Scripting Host ولغات VBScript وJScript إلى تعزيز قدرات البرمجة النصية للأداة المساعدة بشكل كبير.
تعتبر هذه التقنيات مزيجًا متوازنًا جيدًا من أدوات سطر الأوامر المتقدمة وبيئات البرمجة النصية. في الواقع، فإن مسألة عدد ملفات CMD.EXE و.CMD وWindows Scripting Host التي يمكن معالجتها ليست هي المشكلة الحقيقية. ما يشكو منه الناس ويقلقهم أكثر هو إنجاز بعض المهام التي تبدو بسيطة.
باستخدام "إطار" سطر الأوامر وأدوات البرمجة النصية، يتطلب أي برنامج نصي شامل إلى حد ما مجموعة من أوامر الدفعة، وWindows Scripting Host، والملفات القابلة للتنفيذ المستقلة. يستخدم كل نص برمجي اتفاقيات مختلفة للتنفيذ وطلب البيانات وتحليلها وإرجاعها.
إن الدعم الضعيف للمتغيرات في CMD.EXE، والواجهات غير المتسقة، والوصول المحدود إلى إعدادات Windows، بالإضافة إلى ضعف آخر، تجعل برمجة سطر الأوامر أكثر صعوبة في التنفيذ والاستخدام. ربما تتساءل ما هو "الضعف الآخر" هنا؟ يرجى ملاحظة أنه نص عادي. في هذه التقنيات، كل شيء يكون على شكل نص. إن مخرجات الأمر أو البرنامج النصي عبارة عن نص ويجب تحليله وإعادة تنسيقه ليكون بمثابة إدخال للأمر التالي. هذه هي نقطة البداية الأساسية التي يأخذها PowerShell من جميع الأصداف التقليدية.
إن المفاهيم الثلاثة المقدمة في هذا القسم هي مجرد الأساسيات لفهم المفاهيم الرئيسية التي تشكل أساس PowerShell. سوف تحتاج إلى قضاء المزيد من الوقت في تعلم وإتقان المفاهيم الأكثر تقدمًا عند التعامل مع أوامر PowerShell.
يتم تثبيت PowerShell افتراضيًا في أنظمة التشغيل Windows 10، وWindows 7، وWindows Server 2008 R2، والإصدارات الأحدث من Windows. تضيف الإصدارات الجديدة من PowerShell ميزات جديدة و"cmdlets" (مصطلح Microsoft لأوامر PowerShell - تنطق "command-lets") ويتم تثبيتها مع الإصدار المقابل من Windows Management Framework (WMF).
حاليًا، يعد WMF 5.1 هو الإصدار الأحدث الموصى به. في بعض الحالات، تعتمد بعض الميزات الجديدة على نظام التشغيل بالإضافة إلى إصدار WMF. على سبيل المثال، يدعم Windows 8 وWindows Server 2012 cmdlet Test-NetConnection، والذي يسمح لك باختبار الاتصال بمنفذ TCP/IP معين ، ولكن هذا cmdlet غير متوفر في Windows 7 حتى عند تشغيل أحدث إصدار من WMF.
في معظم أنظمة Windows، سيكون لدى المستخدمين بيئتي PowerShell متاحتين لهم، وحدة التحكم PowerShell وبيئة البرمجة النصية المتكاملة (ISE) الخاصة بـ PowerShell. تظهر وحدة التحكم PowerShell مثل سطر الأوامر التقليدي، ولكن مع الوظيفة الكاملة لـ PowerShell خلفها. أسماء المتغيرات، والحلقات، والإكمال التلقائي للأوامر، والتوصيل متاحة من وحدة التحكم PowerShell.
بالنسبة للاستخدامات الأكثر تقدمًا (مثل إنشاء البرامج النصية)، يوفر PowerShell ISE الإكمال التلقائي للأوامر، وتسليط الضوء على التعليمات البرمجية، وإمكانيات إكمال التعليمات البرمجية Intellisense من Microsoft لمساعدتك في إنشاء تعليمات برمجية لـ PowerShell واختبارها. يتيح لك PowerShell ISE أيضًا العمل مع نصوص PowerShell متعددة في نفس الوقت باستخدام التنقل المبوب.
الأساس لأوامر PowerShell هو cmdlet. اتبعت Microsoft عدة استراتيجيات تصميم عند إنشاء أدوات cmdlets في PowerShell.
الأول هو القدرة على استنتاج أسماء cmdlet بسهولة، أو على الأقل جعلها أكثر قابلية للاكتشاف. تم تصميم أوامر PowerShell أو cmdlets أيضًا لتكون أسهل في الاستخدام، مع بناء جملة قياسي، مما يجعل إنشاء البرامج النصية من واجهة سطر الأوامر أسهل.
تستخدم أدوات cmdlets تنسيق الفعل-الاسم كما في Get-Service، أو Stop-Service، أو Import-Csv. يشير جزء الفعل من اسم cmdlet إلى الإجراء الذي تم تنفيذه على الاسم. عادةً، ستحتوي وحدات cmdlets المستخدمة لاسترداد المعلومات على الفعل Get في اسمها، مثل Get-Process أو Get-Content . عادةً ما يبدأ الأمر المستخدم لتحرير شيء ما بالفعل Set ، ولإضافة كيان جديد في مكان ما يبدأ عادةً بـ Add أو New .
ثانيًا، يتم أيضًا إعطاء المعلمات المستخدمة بشكل شائع في PowerShell أسماء موحدة. على سبيل المثال، تسمح المعلمة -ComputerName بتنفيذ cmdlet على جهاز كمبيوتر بعيد واحد أو أكثر. -يتم استخدام بيانات الاعتماد لتوفير كائن مصادقة، يحتوي على بيانات اعتماد المستخدم، لتشغيل أمر كمستخدم محدد.
يمكنك استخدام الأسماء المستعارة لكل من وحدات cmdlet والمعلمات لتوفير ضغطات المفاتيح، مما يؤدي إلى تقصير الطول الإجمالي للأمر (مفيد للغاية عند ربط أوامر متعددة معًا). على الرغم من أن هذه الأسماء المستعارة لا تستخدم دائمًا اتفاقيات التسمية القياسية، إلا أنها لا تزال تعكس أدوات سطر الأوامر التقليدية.
في PowerShell، تتوافق الأسماء المستعارة مثل DIR وCD وDEL وCLS مع وحدات cmdlets Get-ChildItem وSet-Location وRemove-Item وClear-Host على التوالي. يمكن أن تعمل أسماء المعلمات المستعارة بطريقتين: يمكنها استخدام اسم مستعار محدد مسبقًا يوفره الأمر cmdlet، أو يمكن تسميتها عن طريق إدخال عدد كافٍ من الأحرف لإنشاء تطابق فريد بين المعلمات المدعومة في الأمر cmdlet.
يتوجب على معظم مسؤولي النظام التعامل مع الملفات والمجلدات أثناء عملهم، سواء كان ذلك نقل مجلد إلى موقع آخر على الخادم، أو أرشفة ملفات السجل، أو البحث عن ملفات كبيرة. في حالة تكرار نفس العمليات على العديد من الملفات، فإن استخدام PowerShell لأتمتتها سيكون حلاً فعالاً لتوفير الوقت.
للعثور على الملفات والدلائل، كانت إحدى أدوات سطر الأوامر الأولى التي يتعلمها المسؤول في الأيام القديمة للحوسبة هي أمر dir. سيقوم الأمر Dir بإدراج الملفات والدلائل الموجودة في الدليل المحدد.
يحتوي PowerShell على أمر مماثل في شكل أمر Get-ChildItem . يتيح لك Get-ChildItem إنشاء قائمة سريعة بالملفات الموجودة في دليل بطريقة تمكنك من التعامل مع الملفات عبر أمر الأنبوب أو تعيين الإخراج إلى متغير.
يمكن استخدام Get-ChildItem ببساطة عن طريق توفير مسار، إما من خلال خط الأنابيب، أو باستخدام معلمة -Path أو مباشرة بعد اسم cmdlet. لتعديل الاستجابة التي تم إرجاعها بواسطة Get-ChildItem، من الضروري مراعاة بعض المعلمات التي يوفرها cmdlet.
تعد معلمة -Filter إحدى الطرق التي يمكنك من خلالها البحث عن الملفات. بشكل افتراضي، يقوم Get-ChildItem بإرجاع العناصر الفرعية المباشرة للدليل المستهدف فقط. يمكن توسيع هذه الوظيفة باستخدام الخيار الإضافي -Recurse ، الذي يبحث بشكل متكرر عن الدلائل الموجودة في الدليل الحالي.
في PowerShell 4.0 أضاف Get-ChildItem القدرة على تقييد النتائج بالملفات أو الدلائل باستخدام المفتاح –File أو –Directory . كان يتعين على الإصدارات السابقة من PowerShell تمرير النتيجة إلى Where-Object، والتصفية على خاصية PSIsContainer لاتخاذ هذا القرار. يظهر هنا مثال لكلا التقنيتين المستخدمتين لإرجاع المجلدات الموجودة في C:Users:
Get-ChildItem C:Users -Directory Get-ChildItem C:Users | Where-Object {$_.PSIsContainer –eq $true}
لكشف الملفات المخفية أو ملفات النظام، يجب استخدام -Force . يمكن أيضًا استخدام Get-ChildItem في PowerShell 4.0 والإصدارات الأحدث لإرجاع الملفات المخفية أو للقراءة فقط أو ملفات النظام باستخدام -Hidden و-ReadOnly و- System على التوالي. كان من الممكن تحقيق وظيفة مماثلة في الإصدارات السابقة عن طريق تصفية خاصية Mode باستخدام Where-Object:
Get-ChildItem C:Users | Where-Object {$_.Mode -like '*R*'}
التحقق من وجود الملف
عادةً عند العمل مع الملفات، كل ما نحتاج إلى معرفته هو ما إذا كان الملف موجودًا أو ما إذا كان مسار الدليل صالحًا. يوفر PowerShell أداة cmdlet للقيام بذلك في شكل Test-Path، والتي ترجع قيمة true أو false.
يتم استخدام مسار الاختبار كخطوة احترازية قبل محاولة نسخ أو حذف ملف معين.
نسخ ونقل وحذف الملفات
نسخ العنصر: نسخ ملف أو أكثر أو مجلد من موقع محدد بواسطة معلمة -Path، إلى الموقع المحدد بواسطة خيار -Destination.
نقل العنصر: نقل ملف أو مجلد.
عند نسخ أو نقل هياكل الدليل، يجب استخدام -Recurse لجعل cmdlet يقوم بالعمل على الدليل ومحتوياته. في بعض الحالات، يكون استخدام -Force ضروريًا ، كما هو الحال عندما يتم استبدال ملف للقراءة فقط بعملية نسخ.
إزالة العنصر: حذف الملف أو المجلد.
يجب استخدام Switch -Force عند مواجهة ملف للقراءة فقط ويجب استخدام -Recurse عند حذف دليل ومحتوياته.
استخدام PowerShell -WhatIf و-Confirm
قبل القيام بأي حذف جماعي خطير، استخدم -WhatIf . -يسمح لك WhatIf برؤية ما سيحدث إذا تم تشغيل البرنامج النصي أو الأمر، هل سيكون له أي تأثير سلبي محتمل يتمثل في حذف بيانات العمل المهمة. ومن الجدير بالذكر أيضًا أن -WhatIf لا يقتصر على عمليات الملفات، بل يتم استخدامه على نطاق واسع في PowerShell.
بالنسبة للبرامج النصية التي تنوي تشغيلها يدويًا أو الأسوأ من ذلك، والتي تحتوي على أوامر تابعة يتم تشغيلها يدويًا، فكر في استخدام -Confirm . يتيح لك هذا طلب تفاعل المستخدم قبل تنفيذ الإجراء فعليًا.
نصوص PowerShell = ملفات دفعية على المنشطات
تم كتابة PowerShell نفسه بلغة .NET ويعتمد بشكل كبير على .NET Framework. لهذا السبب تم تصميم PowerShell باعتباره أداة مساعدة موجهة للكائنات ولغة برمجة نصية. يتم التعامل مع كل شيء في PowerShell باعتباره كائن .NET Framework وظيفيًا بالكامل. أمر يعطي مجموعة من الكائنات التي يمكن استخدامها باستخدام خصائص وطرق نوع هذا الكائن. عندما تريد توجيه إخراج أمر واحد إلى أمر آخر، يقوم PowerShell فعليًا بتمرير الكائن، وليس فقط إخراج النص لسطر الأوامر الأول. يتيح هذا الأمر التالي الوصول الكامل إلى جميع خصائص وطرق الكائن في خط الأنابيب.
إن التعامل مع كل شيء باعتباره كائنًا والقدرة على قبول الكائنات بين الأوامر يعد تغييرًا نظريًا كبيرًا لأدوات سطر الأوامر. ومع ذلك، لا يزال PowerShell يعمل مثل أداة shell التقليدية. يمكن كتابة الأوامر والبرامج النصية والملفات القابلة للتنفيذ وتشغيلها من سطر الأوامر ويتم عرض النتائج بتنسيق نصي. تظل ملفات Windows .CMD و.BAT، وVBScripts، وJScripts، والملفات القابلة للتنفيذ التي تعمل داخل CMD.EXE تعمل جميعها في PowerShell. ومع ذلك، نظرًا لأنها ليست موجهة نحو الكائنات، فليس لديها إمكانية الوصول الكامل إلى الكائنات التي تم إنشاؤها واستخدامها في PowerShell. ستظل هذه البرامج النصية والتنفيذات القديمة تعامل كل شيء كنص، ولكن يمكنك دمج PowerShell مع عدد من التقنيات الأخرى. هذه نقطة مهمة للغاية إذا كنت تريد البدء في استخدام PowerShell مع مجموعة من البرامج النصية الموجودة والتي لا يمكن تحويلها كلها مرة واحدة.
يمكن لـ cmdlets قبول المعلمات لتغيير سلوكها. عند تشغيل أمر Cmdlet أو وظيفة، يمكنك توفير قيم المعلمات لتحديد ماذا، ومتى، وأين، وكيف يتم تشغيل كل أمر PowerShell.
على سبيل المثال، سيقوم الأمر Get-Process باسترداد جميع العمليات الجارية في نظام التشغيل لديك وإدراجها في قائمة:
ولكن ماذا لو كنت تريد فقط تحقيق تقدم محدد؟ يمكنك القيام بذلك باستخدام المعلمات. على سبيل المثال، للحصول على جميع عمليات Slack، يمكنك استخدام معلمة Name مع أمر Get-Process:
Get-Process -Name Slack
ثم ستشاهد فقط العمليات المسماة "slack":
نصيحة : بعض المعلمات "موضعية" مما يعني أن أسماءها اختيارية. في هذه الحالة، يقوم كل من Get-Process -Name Slack و Get-Process Slack بنفس المهمة.
سيقبل كل أمر Cmdlet أنواعًا مختلفة من المعلمات. استخدم الأمر Get-Help لرؤية المعلمات المقبولة في Cmdlet في قسم SYNTAX.
Get-Help Get-Process
ستشاهد قائمة بجميع الطرق الممكنة لتشغيل الأمر Cmdlet المعطى:
في هذه الحالة، تقبل أداة Get-Process Cmdlet معلمات مثل Name وId وComputerName وModel وFileVersionInfo وغيرها من المعلمات الشائعة. الرموز هنا تعني:
رمز |
اسم |
معنى |
---|---|---|
طبل |
المعلمة لا تقبل الإدخال |
|
- |
شرطة |
حدد اسم المعلمة |
<> |
أقواس مجعدة |
عنصر نائب للنص |
[] |
الأقواس |
يمكن للمعلمة قبول قيمة واحدة أو أكثر. |
{} |
أقواس مجعدة |
تقبل المعلمة مجموعة من القيم. |
تقبل المعلمات مجموعة من القيم التي تشير إلى نوع البيانات المطلوبة، مثل السلسلة أو العدد الصحيح أو القيمة المنطقية أو التاريخ والوقت. على سبيل المثال، الأمر التالي:
Get-Process [[-Name] ]
... يعني أن معلمة الاسم تقبل قيمة سلسلة واحدة أو أكثر، في حين أن هذا الأمر:
Get-Process -Id
... يعني أن معلمة Id تقبل قيمة عدد صحيح واحدة أو أكثر.
استخدم مثال Get-Process السابق معلمة Name لتضييق نطاق النتائج. ومع ذلك، إذا كنت تريد تضييق نطاقه إلى عملية أكثر تحديدًا، فيمكنك استخدام معلمة ID ، والتي تتطلب عددًا صحيحًا كما هو مذكور في بنيتها النحوية.
Get-Process -Id 3016
ثم سوف ترى عملية واحدة فقط في القائمة:
يعامل PowerShell كافة البيانات ككائنات. لبناء البرنامج النصي، يتم تشغيل هذه الكائنات من خلال سلسلة من الأوامر أو الوظائف المتصلة بواسطة رمز الأنبوب (|). يعد اختيار أدوات الأوامر المناسبة وتوصيلها في تسلسل منطقي باستخدام خط الأنابيب أمرًا مهمًا للحصول على نص برمجي فعال.
لنفترض أنك تقوم بإنشاء برنامج نصي لفرز وعرض أفضل 5 ملفات تشغل أكبر مساحة في مجلد. هناك طرق أكثر قوة لإنشاء برنامج نصي لفرز الملفات، ولكن الطريقة البسيطة التالية سهلة الفهم:
للقيام بذلك في PowerShell، استخدم خط أنابيب يبدو مثل هذا:
Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
| Select-Object -First 5 | Format-Table Name, Length -AutoSize
الآن بعد أن أصبح لدينا خط أنابيب عامل، يمكنك حفظه كملف نصي PS1 حتى لا تضطر إلى استيراده في كل مرة تستخدمه.
الطريقة الأبسط لإنشاء ملف PS1 هي لصق البرنامج النصي الخاص بك في Notepad وحفظ الملف بامتداد .ps1.
بمجرد إنشاء ملف PS1، يمكنك استخدامه في PowerShell عن طريق تشغيل ./ScriptName.ps1 :
نصيحة : إذا حصلت على خطأ في الأذونات، فإن الحل الأسرع هو تشغيل PowerShell بحقوق المسؤول عند تشغيل البرنامج النصي الخاص بك.
مبروك! يمكنك الآن إنشاء البرنامج النصي PowerShell PS1.
إن قراءة وفهم عجائب التكنولوجيا الجديدة شيء، ولكن استخدامها فعليًا شيء آخر! في بقية هذه المقالة، سنقوم بتطوير البرنامج النصي PowerShell لإظهار قدراته واستخداماته.
DIR هو أحد الأوامر الأكثر شيوعًا في CMD.EXE . يعرض هذا الأمر جميع الملفات والدلائل الفرعية الموجودة في الدليل الرئيسي (كما هو موضح في الشكل 1). إلى جانب اسم كل كائن، تتضمن المعلومات المقدمة أيضًا تاريخ ووقت آخر تحديث وحجم كل ملف. يعرض DIR أيضًا الحجم الإجمالي لجميع الملفات في الدليل، بالإضافة إلى العدد الإجمالي للملفات والمجموعات الفرعية.
الشكل 1
يؤدي تشغيل DIR في PowerShell أيضًا إلى إنشاء قائمة دليل مثل الشكل 2، ولكنها مختلفة بعض الشيء. لا يحتوي PowerShell على أمر DIR، ولكنه يحتوي بدلاً من ذلك على Get-ChildItem، الذي يؤدي نفس الوظيفة. في PowerShell، DIR هو اسم مستعار لـ Get-ChildItem. لا أقصد الخوض في الأسماء المستعارة في هذه التدوينة. يمكنك التفكير في DIR في PowerShell باعتباره اختصارًا لـ Get-ChildItem.
يوفر DIR في PowerShell الكثير من المعلومات نفسها المذكورة أعلاه: قائمة بالملفات والمجلدات، والتاريخ والوقت الذي تم تحديثها فيه آخر مرة، وحجم كل ملف. ومع ذلك، فإنه يفتقر إلى معلومات الملخص التي يوفرها DIR في CMD.EXE: الحجم الإجمالي لجميع الملفات في الدليل، والعدد الإجمالي للملفات، والعدد الإجمالي للدلائل الفرعية.
الشكل 2
بالنسبة لسيناريو المثال، ستحتاج إلى إنشاء برنامج نصي PowerShell يحاكي أمر CMD.EXE DIR. سأشرح أدناه الأجزاء الأكثر أهمية في البرنامج النصي.
DIR.PS1: الرأس
يتكون البرنامج النصي PowerShell من أوامر PowerShell في ملف نص عادي يحمل امتداد .PS1. بدلاً من DIR، سوف تستخدم ملف نصي يسمى DIR.PS1.
لتشغيل البرنامج النصي، اكتب الأمر التالي في شاشة PowerShell:
.DIR.PS1 X:Folder
حيث X هو حرف قسم محرك الأقراص (مثل C، D، E) وFolder هو اسم المجلد.
إذا كنت تريد معرفة بعض المعلومات حول قسم محرك الأقراص، فسوف يتعين عليك استخدام Windows Management Instrumentation (WMI). إن تفاصيل WMI خارج نطاق هذه المقالة، لذا لن نقوم بتغطيتها هنا. ولكن كود PowerShell أدناه سهل الفهم أيضًا دون الحاجة إلى مساعدة WMI. يمكنك إنشاء متغير "$filter" لاستخدامه مع الأمر Get-WmiObject. يخبر متغير التصفية هذا أمر Get-WmiObject بأنك تريد معلومات حول محرك أقراص محدد فقط. يتم تخزين نتيجة الأمر Get-WmiObject في متغير يسمى $volInfo. تذكر أن كل شيء في PowerShell عبارة عن كائن؛ $volInfo هو الآن أيضًا كائن نتيجة تم إرجاعه من Get-WmiObject.
$filter = "DeviceID = '" + $drive + ":'"
$volInfo = Get-WmiObject -Class Win32_LogicalDisk -Filter $filter
يمكنك الآن الوصول إلى كافة الكائنات والطرق المرتبطة بالكائن. يمكن الوصول إلى الرقم التسلسلي للمجلد عبر الخاصية VolumeSerialNumber. المعلومات المسترجعة عبارة عن سلسلة مكونة من 8 أحرف. ولكنك عادةً تريد تنسيقه كأربعة أرقام منفصلة، مفصولة بواصلة. يمكن القيام بذلك بنفس الطريقة كما في السطر أدناه. إن الواصلة الموجودة في نهاية السطر الأول هي حرف استمرار السطر في PowerShell. في الأساس، يخبر هذا الأمر PowerShell فقط أن السطر ليس مكسورًا ولكنه يتضمن السطر التالي. عند كتابة الكود ليس هناك حاجة لفصل الأسطر، ولكن لتقليل العرض ولجعل الكود أسهل للقراءة، يجب عليك القيام بذلك.
$serial = $volInfo.VolumeSerialNumber.SubString(0, 4) + "-" + `
$volInfo.VolumeSerialNumber.SubString(4, 4)
الآن بعد أن أصبح لديك كائن $volInfo، يمكنك كتابة معلومات رأس DIR على الشاشة. إذا لم يكن للمحرك اسم، فسيكون النص المكتوب على الشاشة مختلفًا قليلاً عما إذا كان للمحرك اسم. يتم استخدام عبارة If-Else البسيطة للتحقق مما إذا كانت الخاصية VolumeName عبارة عن سلسلة فارغة أم لا. يتم استخدام الأمر Write-Host لكتابة أسطر فردية من الأوامر على الشاشة.
If ($volInfo.VolumeName -eq "") { Write-Host (" Volume in drive " + $drive + " has no label") } Else { Write-Host (" Volume in drive " + $drive + " is " + $volInfo.VolumeName) } Write-Host (" Volume Serial Number is " + $serial) Write-Host ("`n Directory of " + $args[0] + "`n")
يتم استخدام الحرف "n" في بداية ونهاية أمر Write-Host لإدراج أسطر جديدة قبل النص وبعده. يضيف الأمر Write-Host سطرًا جديدًا في نهاية كل سطر. وبالتالي فإن تأثير "n" هو إنشاء أسطر فارغة قبل وبعد سطر النص.
هل لاحظت "-eq" في الأمر If؟ إنه عامل مقارنة المساواة. سيوضح لك الجدول أدناه جميع عوامل المقارنة:
-eq، -ieq | مقارنة حسب |
-ني، -اين | المقارنة ليست متساوية |
-gt، -igt | قارن أكبر من |
-ge، -ige | قارن أكبر من أو يساوي |
-lt، -ilt | مقارنة أصغر من |
-le, -ile | قارن أقل من أو يساوي |
يشير الحرف -i قبل مشغلي المقارنة إلى أن المشغل لا يفرق بين الأحرف الكبيرة والصغيرة.
الشكل 3: بيانات الإخراج للنص البرمجي الذي لديك حاليًا
DIR.PS1: قائمة الملفات/المجلدات
أنت الآن جاهز لعرض محتويات وخصائص هذا المجلد. أول شيء يجب عليك فعله هو استدعاء أمر PowerShell Get-ChildItem للحصول على مجموعة من الملفات وتمريرها إلى البرنامج النصي كمعلمة. سيقوم الأمر Get-ChildItem باسترداد مجموعة من كائنات الملفات والمجلدات، وليس فقط أسمائها، بل سيقوم أيضًا بتوجيه هذه الكائنات مباشرةً إلى الأمر Sort-Object لفرزها. بشكل افتراضي، سيقوم الأمر Sort-Object بفرز الكائنات استنادًا إلى خاصية الاسم. لذلك لا تحتاج إلى وصف أي معلمات أخرى. سيتم بعد ذلك تخزين المجموعة المصنفة من الكائنات في متغير يسمى $items.
$items = Get-ChildItem $args[0] | Sort-Object
بمجرد حصولك على مجموعة من كائنات الملفات والمجلدات، ستحتاج إلى التنقل بينها وعرض الميزات المناسبة. الأمر المستخدم لهذا هو ForEach. بالنسبة لكل ملف أو مجلد، ستكون الميزات المعروضة هي تاريخ ووقت آخر تحديث، أو الاسم، أو الطول، أو حجم الملف. السلاسل ذات المظهر الغريب الموجودة داخل الأقواس هي أكواد تنسيق سلسلة .NET. يتم استخدامها لمحاذاة الحقول إلى اليسار/اليمين وتنسيق التواريخ والأوقات والأرقام. إن فهم رموز تنسيق السلسلة هذه ليس مهمًا جدًا، لأنها ليست ضرورية لطبيعة هذا البرنامج النصي.
إن الأمر If هو المكان الذي تحدد فيه ما إذا كان الكائن عبارة عن دليل أم لا. إذا كان الحرف الأول من سمة الوضع هو "d"، فإن الكائن هو دليل. يجب عليك التحقق مرة أخرى لأن الكود المكتوب للدلائل غالبًا ما يكون مختلفًا عن الكود المكتوب للملفات.
لاحظ السطر $totalDirs++ داخل العبارة If. هذا هو العداد المسؤول عن تتبع عدد المجلدات. وبالمثل، هناك متغير $totalFiles يستخدم لتتبع الحجم الإجمالي لجميع الملفات. يتم حساب هذه القيم دائمًا أثناء التنفيذ. ولكن يتم عرضها فقط عند انتهاء عملية إدراج الملفات.
ForEach ($i In $items)
{
$date = "{0, -20:MM/dd/yyyy hh:mm tt}" -f $i.LastWriteTime
$file = $i.Name
If ($i.Mode.SubString(0, 1) -eq "d")
{
$totalDirs++
$list = $date + " {0, -15}" -f "
" + " " + $file
}
Else
{
$totalFiles++
$size = "{0, 18:N0}" -f $i.Length
$list = $date + $size + " " + $file
}
$totalSize += $i.Length
Write-Host $list
}
الشكل 4: يعرض بيانات الإخراج للنص البرمجي المحدث.
DIR.PS1: التذييل
الشيء الوحيد المتبقي فعله هو كتابة العدد الإجمالي للملفات والمجلدات والحجم الإجمالي لجميع الملفات والمساحة الخالية على قسم القرص هذا على الشاشة. للقيام بذلك، سوف تحتاج إلى استخدام متغيرات العداد ($totalFiles، $totalDirs، $totalSize) التي تم إنشاؤها في القسم السابق. يمكنك معرفة مقدار المساحة الخالية من خلال المتغير $volInfo الذي تم إنشاؤه في بداية البرنامج النصي.
Write-Host ("{0, 16:N0}" -f $totalFiles + " File(s)" + `
"{0, 15:N0}" -f $totalSize + " bytes")
Write-Host ("{0, 16:N0}" -f $totalDirs + " Dir(s)" + `
"{0, 16:N0}" -f $volInfo.FreeSpace + " bytes free`n")
الشكل 5: يعرض بيانات الإخراج الكاملة للنص البرمجي.
يمكن أن تكون التوقعات والتحسينات
على الرغم من أن البرنامج النصي الذي تقوم بإنشائه ينتج نفس النتيجة تقريبًا لأمر CMD.EXE DIR، فهناك بعض التحذيرات التي يجب أن تكون على دراية بها وبعض التحسينات التي يمكن إجراؤها.
يمكنك استخدام PowerShell لأتمتة أي شيء تقريبًا، مثل إعادة تسمية الملفات بشكل دفعي لتحقيق التناسق أو تشغيل التطبيقات تلقائيًا. دعنا نكتب بعض البرامج النصية البسيطة لـ Windows PowerShell لنرى كيف تعمل.
ملاحظة : إذا واجهت خطأً عند تنفيذ البرنامج النصي فيما يتعلق بسياسة التنفيذ، فقد تحتاج إلى السماح للبرنامج النصي بالتنفيذ مؤقتًا عن طريق تشغيل "Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass"
إعادة تسمية الملفات دفعة واحدة في مجلد
يمكنك استخدام PowerShell لنسخ الملفات ونقلها وحذفها على جهاز الكمبيوتر الخاص بك. يمكنك أيضًا إعادة تسمية الملفات دفعة واحدة من نوع ملف معين. على سبيل المثال، إليك كيفية إعادة تسمية ملفات نصية متعددة عن طريق استبدال البادئة "oldco" بـ "newco" في أسماء ملفاتها:
Get-ChildItem -Path "C:\CompanyFiles" -Filter "*.txt" | Rename-Item -NewName {$_.Name -replace "oldco","newco"}
في البرنامج النصي أعلاه، ".txt" هو مرشح امتداد الملف. يمكنك تعديله وتعيينه إلى .jpg، .docx، وما إلى ذلك للبحث عن أنواع ملفات مختلفة.
تشغيل التطبيق تلقائيًا
إذا قمت بفتح نفس مجموعة التطبيقات كل يوم، فيمكنك كتابة برنامج نصي PowerShell لتشغيلها بنقرة واحدة:
#Open multiple apps with a single click
Start-Process "notepad.exe"
Start-Process "calc.exe"
Start-Process "Chrome.exe"
Start-Process "slack.exe"
قم بلصق البرنامج النصي في ملف Notepad ثم احفظه باسم LaunchFavoriteApps.ps1. بعد ذلك، انقر نقرًا مزدوجًا فوق الملف لتشغيل جميع التطبيقات المدرجة في البرنامج النصي.
نسخ الملفات المهمة إلى موقع النسخ الاحتياطي
بإمكانك إجراء نسخ احتياطي دوري للملفات المهمة إلى موقع النسخ الاحتياطي باستخدام البرنامج النصي التالي. تأكد من تغيير مسارات المصدر والوجهة حسب الحاجة:
#Copy MyFiles folder contents to MyFilesBackup in D:\
Copy-Item -Path "C:\Documents\MyFiles" -Destination "D:\MyFilesBackup" -Recurse
نظرًا لكثرة أنواع الملفات التي يتم تنزيلها يوميًا، يمكن لمجلد التنزيلات أن يصبح مزدحمًا بسرعة بجميع أنواع الملفات المتناثرة. لإصلاح هذه المشكلة، يمكننا كتابة برنامج نصي PowerShell يقوم بفرز الملفات التي تم تنزيلها إلى مجلدات حسب نوع الملف في نهاية كل يوم.
افتح ملف Notepad جديدًا وألصق النص التالي. تأكد من تغيير مسار المجلد المصدر في البرنامج النصي ليتوافق مع مسار مجلد التنزيلات:
# Change the source folder path below
$sourcePath = "E:\Downloads"
# Add file mapping folder names; the Others folder includes all the files that do not match file types in the other categories
$fileTypes = @{
"Documents" = @("*.docx", "*.pdf", "*.txt")
"Images" = @("*.jpg", "*.png", "*.gif")
"Media" = @("*.mp4", "*.mp3", "*.mov")
"Zip" = @("*.zip", "*.rar")
"ISO" = @("*.iso")
"Others" = @("*")
}
# Iterate through each folder type and prepare a destination folder for organizing files
foreach ($folder in $fileTypes.Keys) {
# Create the destination folder path
$destPath = Join-Path -Path $sourcePath -ChildPath $folder
# Check if the destination folder exists, and create it if it doesn't
if (!(Test-Path -Path $destPath)) {
New-Item -ItemType Directory -Path $destPath | Out-Null
}
# Move matching files from the source folder to the destination folder based on file type patterns
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 "Moved: $($_.FullName) to $destPath"
} catch {
Write-Warning "Failed to move file: $($_.FullName). Error: $_"
}
}
}
}
Write-Output "Files organized successfully!"
لحفظ الملف، انقر فوق ملف > حفظ باسم وأدخل OrganizeDownloadsFolder.ps1 كاسم للملف. ثم انقر فوق حفظ كنوع وحدد كافة الملفات . انقر نقرًا مزدوجًا فوق الملف OrganizeDownloadsFolder.ps1 لتشغيل البرنامج النصي.
وبطبيعة الحال، فإن البرمجة النصية هي جزء من عملية الأتمتة. والجزء الثاني هو التأكد من إمكانية تنفيذ البرنامج النصي تلقائيًا لأداء المهمة. وللقيام بذلك، يمكننا إنشاء مهام مجدولة لتشغيل البرنامج النصي يوميًا أو حسب الحاجة.
افتح PowerShell، ثم انسخ النص التالي والصقه واضغط على Enter . تأكد من استبدال 'J:\OrganizeDownloadsFolder.ps1' بالمسار الكامل للملف النصي OrganizeDownloadsFolder.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 بكلمة مرور، وحتى تطبيق خلفيات حية من مجلد الصور لديك.
على الرغم من أن PowerShell هي لغة برمجة نصية وأداة مساعدة قوية، إلا أن فهمها واستخدامها لا يستغرق سوى القليل من الوقت، خاصة إذا لم تكن على دراية ببيئة .NET Framework. آمل أن تكون هذه المقالة، إلى جانب البرنامج النصي المثال، مفيدة لأي شخص يريد فهم PowerShell. لكن النص الذي تم إنشاؤه في المثال بسيط للغاية. أعتقد أنه يمكن بناؤه وتطويره بشكل أكثر اكتمالاً لتقديم خدمة أفضل للتطبيقات الأكثر تعقيدًا.
هل يجب عليك تضمين مقطع فيديو أو ربطه في PowerPoint؟ إذا كنت تتساءل أيضًا عن ذلك، فإن المقالة أدناه ستعطيك الإجابة.
قامت شركة مايكروسوفت مؤخرًا برفع سعر اشتراك Microsoft 365، مبررة التغيير بإضافة المزيد من تجارب الذكاء الاصطناعي إلى الخدمة.
يمكنك وضع إشارة مرجعية لمقطع فيديو في PowerPoint لتشغيل الرسوم المتحركة أثناء تشغيل الفيديو. بالإضافة إلى جعل عرض الشرائح الخاص بك يبدو احترافيًا، فإن هذا يساعد أيضًا في جذب انتباه جمهورك إلى تفاصيل معينة في الفيديو.
تواجه شركة Microsoft حاليًا صعوبة في تحويل المستخدمين إلى المنتجات والخدمات الجديدة.
يعد Zoom هو التطبيق المفضل للاجتماعات الافتراضية، ولا يزال Microsoft PowerPoint هو الملك للعروض التقديمية، مما يجعل من السهل الجمع بين الاثنين سواء كنت تقوم بتدريس فصل دراسي أو تقديم فكرة عمل أو استضافة ندوة عبر الإنترنت.
سيصبح تحرير الفيديو على نظام أندرويد سهلاً بفضل أفضل تطبيقات وبرامج تحرير الفيديو التي نسردها في هذه المقالة. تأكد من أنك ستحصل على صور جميلة وسحرية وأنيقة لتشاركها مع الأصدقاء على Facebook أو Instagram.
لا يمكن فتح الفيديو في عرض PowerPoint؟ فيما يلي بعض الحلول السريعة لعدم تشغيل PowerPoint لمقاطع الفيديو.
إذا كانت صورك تحتوي على محتوى حساس لا تريد أن يراه الآخرون، فقم بإخفاء تلك الأجزاء من المحتوى باستخدام الأدوات المتاحة لديك. بإمكانك استخدام الأدوات المضمنة المتوفرة على جهاز الكمبيوتر الذي يعمل بنظام التشغيل Windows 11 للقيام بذلك.
هل تحتاج إلى استخدام عرض Canva الخاص بك في PowerPoint؟ إليك كيفية تحويل شرائح Canva إلى PowerPoint ببضع نقرات فقط.
أطلقت وكالة ناسا للتو بنجاح مهمة بحثية في الفضاء العميق - لاستكشاف القمر الجليدي الشهير لكوكب المشتري.
يمكن للشرائح التي تحتوي على الكثير من النصوص أن تسبب الملل لجمهورك. إذا كنت تريد منهم البقاء متابعين، فإن إضافة الفيديو إلى PowerPoint أسهل مما تعتقد، ويجعل عرضك التقديمي أكثر جاذبية على الفور.
أطلقت شركة Microsoft العديد من الميزات الجديدة لبرنامج PowerPoint لتحسين جانب إمكانية الوصول إلى مجموعة برامج العروض التقديمية الشهيرة الخاصة بها.
هل اشتريت للتو هاتف Samsung Galaxy وتحتاج إلى تكوينه؟ إليك 10 إعدادات يجب عليك تغييرها لجعل هاتف Samsung الخاص بك يعمل بشكل أفضل.
تساعد لعبة Code Murder Mystery 2 اللاعبين على اختيار المزيد من جلود السكاكين لشخصياتهم أو الحصول على المزيد من الأموال لاستخدامها في الخدمات وشراء أشياء أخرى في اللعبة.
في عيد ميلاد حبيبك، ووالديك، وأصدقائك، وإخوتك، وزملائك... بالإضافة إلى الهدايا، لا تنس إرسال بطاقات عيد الميلاد مع التمنيات.
ستساعدك هذه الاختبارات الممتعة على ترك انطباع قوي وكسب قلب الشخص الذي تحبه بسرعة وسعادة.
يحتاج Corki DTCL الموسم 7 إلى الحماية أو الدعم للتسبب في السيطرة إذا كان يريد أن يكون حراً في تدمير فريق العدو. في الوقت نفسه، يجب أن تكون معدات كوركي قياسية أيضًا لتكون قادرة على إحداث ضرر أكثر فعالية.
إليكم رابط تنزيل Mini World Royale وتعليمات اللعب، سيكون لدينا نسختين: Mini World Royale APK و Mini World Royale iOS.
1314 هو رقم يستخدمه الشباب عادة كرمز للحب. ولكن هل يعلم الجميع ما هو الرقم 1314 وماذا يعني؟
يمكن أن يكون التعامل مع المواقف السامة صعبًا للغاية. فيما يلي بعض النصائح التي قد تساعدك على التعامل مع البيئات السامة بلباقة والحفاظ على راحة البال.
يعلم معظم الناس أن الموسيقى ليست للترفيه فقط بل لها فوائد أكثر من ذلك بكثير. فيما يلي بعض الطرق التي تحفز بها الموسيقى نمو أدمغتنا.
النظام الغذائي مهم جدًا لصحتنا. ومع ذلك، فإن معظم أنظمتنا الغذائية غالباً ما تفتقر إلى هذه العناصر الغذائية الستة المهمة.
للحصول على أسرع المعلومات الترويجية من Circle K، يجب عليك تثبيت تطبيق CK Club. يقوم التطبيق بحفظ المدفوعات عند التسوق أو الدفع في Circle K بالإضافة إلى عدد الطوابع المجمعة.
أعلنت شركة إنستغرام للتو أنها ستسمح للمستخدمين بنشر مقاطع فيديو Reels تصل مدتها إلى 3 دقائق، وهو ضعف الحد السابق البالغ 90 ثانية.
سترشدك هذه المقالة إلى كيفية عرض معلومات وحدة المعالجة المركزية والتحقق من سرعة وحدة المعالجة المركزية مباشرة على جهاز Chromebook الخاص بك.
إذا كنت لا ترغب في بيع جهازك اللوحي القديم أو التبرع به، فيمكنك استخدامه بخمس طرق: كإطار صور عالي الجودة، ومشغل موسيقى، وقارئ للكتب الإلكترونية والمجلات، ومساعد في الأعمال المنزلية، وكشاشة ثانوية.
تريدين الحصول على أظافر جميلة، لامعة، وصحية بسرعة. ستكون هذه النصائح البسيطة للحصول على أظافر جميلة مفيدة لك.