PowerShell هو أداة قوية لإدارة البيانات، ولكنها عادة ما توفر الكثير من المعلومات في وقت واحد. كما تعلم، يمكن أن تكون كمية المعلومات الكبيرة مرهقة وصعبة لتحليلها. لا داعي للقلق، على أي حال. سيكون أمرًا مفيدًا أداة PowerShell Select-Object
.
في هذا البرنامج التعليمي، ستتعلم أساسيات أمر Select-Object
لتحديد أو تصفية النتائج بعدة طرق.
استمر في القراءة وابدأ في إدارة البيانات بسهولة!
المتطلبات المسبقة
يتضمن هذا البرنامج التعليمي عروضًا عملية. لمتابعة، تأكد من أن لديك نظامًا مع PowerShell مثبتًا. يستخدم هذا البرنامج التعليمي Windows 10 مع PowerShell 7، ولكن يجب أن تعمل أي إصدار حديث أيضًا.
ما هو أمر PowerShell Select-Object؟
يبسط أمر Select-Object
إدارة البيانات عن طريق السماح لك باختيار خصائص محددة من كائن أو مجموعة بيانات. في الوقت نفسه، يمكنك إعادة تسمية الخصائص أو إنشاء خصائص حسابية استنادًا إلى الخصائص الحالية.
الصيغة الأساسية لـ Select-Object
هي كما يلي: حيث:
Parameter | Function |
---|---|
-InputObject |
Specifies the object or data set you want to work with, which can be an object, an array of objects, or an output of another cmdlet. |
Property |
Specifies the property or properties to select from the InputObject parameter. You can specify multiple properties separated by commas. |
Optional Parameters |
Allows you to refine your selection, such as selecting a certain number of objects or skipping objects. |
تحديد الكائنات حسب الخصائص
نظرًا لأنه يحتاج إلى مقدمة طويلة أكثر من الضروري لإرضاء رغبتك في تعلم الأمر Select-Object
، لماذا لا تبدأ بأحد حالات الاستخدام الشائعة؟ ابدأ هذا البرنامج التعليمي بتحديد خاصية معينة من كائن باستخدام الأمر Select-Object
.
لنفترض أن لديك قائمة من العمليات الجارية على جهاز الكمبيوتر الخاص بك، ولكنك ترغب فقط في رؤية أسماء كل عملية. سيقوم تحديد خاصية Name
لأمر Select-Object
بالقيام بالعملية.
افتح PowerShell وقم بتشغيل الأمر التالي Get-Process
لاسترجاع وطباعة قائمة بجميع العمليات فقط (Select-Object
) بواسطة Name
.

بالإضافة إلى عمليات التشغيل، يتيح لك الأمر
Select-Object
العمل على ملف CSV. لنفترض أن لديك ملف CSV به العديد من الأعمدة ولكنك تحتاج فقط إلى بعضها. في هذه الحالة، دع أمرSelect-Object
يختار فقط الأعمدة ذات الصلة حتى تتمكن من معالجة وتحليل البيانات.
الآن، قم بتشغيل الأمر التالي لتحديد خصائص متعددة (Select-Object
): Name
و CPU
(مفصولة بفواصل). تساعد هذه الميزة عند العمل مع مجموعات بيانات كبيرة حيث تحتاج فقط إلى بعض الخصائص من كل كائن.
بالإضافة إلى ذلك، يقوم هذا الأمر أيضًا بفرز قائمة الكائنات (Sort-Object
) بترتيب -Descending
باستخدام خاصية CPU
كمرجع.
أدناه، يمكنك رؤية العمليات المدرجة، بدءًا من أكثرها استهلاكًا للموارد، Google Chrome (إذا كنت قد قمت بتثبيته).

إنشاء خاصية محسوبة
عند البحث عن خصائص تتناسب أفضل مع احتياجاتك، قم بإنشاء خاصية محسوبة. لماذا؟ تتيح لك الخصائص المحسوبة التلاعب وتحويل البيانات، وتوحيد الخصائص الحالية، وأداء العمليات الرياضية، أو تنسيق البيانات بطريقة معينة.
لإنشاء خاصية محسوبة، يجب عليك تحديد اسم خاصية جديد وتعبير يحدد كيفية حساب قيمة الخاصية:
قم بتشغيل الأمر أدناه لأداء الإجراءات التالية:
- استرجاع قائمة العمليات الجارية (
Get-Process
)، محددًا فقط (Select-Object
) خصائصName
وCPU
. - أنشئ خاصية محسوبة جديدة بالاسم “الذاكرة (ميجابايت)” تحسب استخدام الذاكرة لكل عملية بالميجابايت. يتم حساب استخدام الذاكرة باستخدام تعبير يقوم بقسمة خاصية “الذاكرة العاملة” على “1 ميجابايت”. أي تعبير صالح في بوويرشيل يعمل في إنشاء خاصية محسوبة.
- يطبع كل العمليات الجارية المسترجعة بترتيب تنازلي بواسطة الخاصية المحسوبة “الذاكرة (ميجابايت)”.

استثناء خاصية محددة
في الحياة الواقعية، قد تحتوي نتائج أمر “اختيار-كائن” على معلومات حساسة، مثل أسماء المستخدمين وكلمات المرور. كيف يمكن تجنب هذا الخطر؟
لمنع عرض البيانات الحساسة في الناتج، قم بإضافة معلمة “-استثناءالخاصية” لاستثناء خاصية محددة من الناتج.
قم بتشغيل الأمر التالي لأداء المهام التالية:
- استرجاع قائمة بجميع الملفات والمجلدات (
احصل-علىعنصرطفل
) في الدليل “C:\\” بشكل تكراري (-تكرار
).
- توجيه الناتج إلى cmdlet
Select-Object
لتحديد الخصائصName
،Length
، وLastWriteTime
. - استبعاد الخاصية
FullName
من الناتج باستخدام (-ExcludeProperty
). وهذا يمنع عرض المسارات الكاملة في الناتج، مما قد يحتوي على معلومات سرية.

تخطي العدد الأول أو الأخير من الكائنات
عند العمل مع مجموعات بيانات ضخمة، يمكن أن يكون العثور على البيانات التي تحتاج إليها مثل البحث عن الماس في منجم فحم. ولكن لماذا إضاعة الوقت في البحث عن البيانات غير المرتبطة؟
في PowerShell، يوفر cmdlet Select-Object
معلمات تسمح لك باستبعاد العدد الأول (-Skip
) والعدد الأخير (-SkipLast
) من الكائنات في الناتج، على التوالي.
لرؤية كيفية تخطي العديد من الكائنات في الناتج:
قم بتشغيل الأمر التالي للحصول على جميع العمليات الجارية (Get-Process
) لكن قم بتخطي العدد الأول 100
من الكائنات المرجعة.
يرجى ملاحظة أن عدد الكائنات المتخطاة يعتمد على قيم الأعداد الصحيحة (الإيجابية والأعداد الصحيحة دون نقاط عشرية)، والتي في هذه الحالة هو
100
.

الآن، قم بتشغيل الأمر التالي للحصول على قائمة بمحتويات دليل العمل (Get-ChildItem
) ولكن قم بتخطي العدد الأخير (-SkipLast
) 100
من الكائنات المرجعة.

تحديد العدد الأول أو الأخير من الكائنات
بالإضافة إلى تخطي العناصر الأولى والأخيرة، قد تكون مهتمًا أيضًا بتحديد العناصر الأولى والأخيرة بدلاً من ذلك. يدعم أمر Select-Object
هذه الميزة باستخدام المعلمات First
و Last
التي تتيح لك تخطي كل شيء آخر لتوفير الوقت والموارد.
قم بتشغيل الأمر التالي للحصول على جميع العمليات ولكن اختر (Select-Object
) فقط العناصر المُرجعة -First 10
.

الآن، قم بتشغيل الأمر أدناه للحصول على جميع محتويات دليل العمل (Get-ChildItem
) ولكن اختر (Select-Object
) فقط العناصر المُرجعة -Last 10
.

تحديد الكائنات الفريدة حصريًا
أثناء العمل مع مجموعات بيانات أكبر، ستواجه قيم مكررة قد ترغب في استبعادها من الإخراج، وهذا أمر معتاد. لكن الشيء الجيد في أمر Select-Object
هو أنه لا يتعين عليك استبعاد القيم المكررة يدويًا.
إضافة المعلمة -Unique
تسمح لك باختيار الكائنات الفريدة فقط من الإخراج، مما يبسط تحليلك ويحسن دقة نتائجك.
قم بتشغيل الأمر أدناه لتحديد (Select-Object
) وإرجاع الكائنات -First 2
.
في الأسفل، يمكنك رؤية كائنين مُرجعين بغض النظر عما إذا كان الآخر قيمة مكررة.

أخيرًا، قم بتشغيل الأمر التالي لإرجاع قيمة -Unique
واحدة فقط لكل من الكائنات -First 2
المحددة.
هذه المرة، يمكنك رؤية مرجع واحد فقط من الكائنات الأولى المُختارة، حيث أن الآخر مكرر فقط. كما تلاحظ، تُثبت هذه النتيجة أن معلمة -Unique
مفيدة للتخلص بسرعة من أي كائنات مكررة في بياناتك.

الاستنتاج
يميل PowerShell إلى إنتاج كمية كبيرة من المعلومات. ولكن في هذا البرنامج التعليمي، تعلمت كيف يساعد أمر Select-Object
في PowerShell على تبسيط بياناتك لرؤية المعلومات المطلوبة فقط.
لقد رأيت كيف تتيح لك معلمات مختلفة تحديد واستبعاد البيانات، خاصة القيم المُكررة من الناتج. باستخدام أمر Select-Object
، لا يجب أن يكون إدارة كميات كبيرة من البيانات مهمة مرهقة.
في هذه النقطة، يمكنك تحسين نتائجك بسرعة لتكون أكثر ملاءمة للتحليل وإصلاح الأخطاء. ولكن لماذا لا تتعلم كيفية تنسيق خصائصك المحسوبة بعد لتحسين قراءتها واستخدامها؟
Source:
https://adamtheautomator.com/powershell-select-object/