مصفوفات PowerShell: كيفية إنشائها واستخدامها

المتغيرات هي أبسط بنية بيانات في أي نوع من أنواع الترميز(any type of coding) . لكن المتغيرات الفردية بالكاد تكفي لمعظم الأغراض ، خاصة عند التعامل مع خوارزميات أكثر تعقيدًا.

وهنا يأتي دور المصفوفات. سواء كانت لغة C ++ أو Python ، فإن المصفوفات موجودة في كل لغة برمجة بشكل ما. ولكن ماذا عن Windows PowerShell ؟ كيف تعمل مصفوفات PowerShell ؟ كيف تستخدمها؟ ما هو تركيبهم؟ هيا نكتشف.

صفيفات PowerShell 101

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

في PowerShell ، يمكنك إنشاء متغير عن طريق إضافة الرمز $ إلى اسم متغير. فمثلا:

$prime = 13

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

$name = “Levin”

الآن لإنشاء مصفوفة جديدة ، ما عليك سوى تعيين قيم متعددة لنفس المتغير ، مفصولة بفواصل. مثله:

$week = “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”

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

$week = @(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”)

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

إنشاء مصفوفة

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

$digits = (0..9)

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

$values = @()

يمكن حتى أن تتداخل المصفوفات المتعددة(Multiple) مع بعضها البعض ، على الرغم من أن هذا النوع من الاستخدام يمكن أن يكون مربكًا بسرعة كبيرة.

$coordinates = @(
    (5، 10، 23)،
    (11، 7، 16)
)

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

[int[]] $numbers = 2,3,4,5

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

الوصول إلى المصفوفات

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

تستخدم مصفوفات PowerShell(PowerShell) نفس التنسيق الذي تستخدمه لغات البرمجة الأخرى. يمكن الوصول إلى كل متغير مصفوفة من خلال رقم الفهرس الخاص به. فمثلا:

$var = $numbers[5]

سيؤدي هذا إلى نسخ القيمة المخزنة في الفهرس الخامس لمصفوفة $numbers في المتغير $varلاحظ أن فهارس المصفوفة تبدأ بالعد من 0 ، لذلك يتم الوصول إلى العنصر الأول بصفر.

إذا أردنا إخراج هذا ، على سبيل المثال:

“$days[2]”

سنصل يوم الأربعاء وليس الثلاثاء.

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

$numbers[1] = 0

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

$names += “Johny”

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

$names += “Charlie, Liam, Teresa”

$names += $surnames

تستخدم الطريقة المفصولة بفواصل للوصول إلى عناصر مصفوفة متعددة أيضًا. يؤدي إدخال هذا ، على سبيل المثال ، إلى تخزين العناصر الخمسة الأولى من $days في $weekdays .

$weekdays = $days[0,1,2,3,4]

التكرار من خلال المصفوفات

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

يمكن أن تمر حلقات For بشكل منهجي عبر جميع عناصر المصفوفة ، ومعالجة كل قيمة وفقًا للتعليمات. هذه هي الطريقة التي يمكنك بها إنشاء مثل هذه الحلقة:

For ($i = 0 ; $i -lt $days.Length ; $i++){
    $days[$i]}

تعرض الدالة array.Length حجم المصفوفة ، وهو أساسًا عدد العناصر الموجودة فيها. يمكن توصيل هذا بمعامل اختبار التعبير عن حلقة For loop للتكرار الشامل لجميع العناصر.

يمكن لحلقة Foreach وحلقة Foreach -object أن تفعل الشيء نفسه مع برنامج (Foreach)PowerShell النصي أصغر حجمًا .

Foreach ($day in $days){
    $day}

يوفر لك هذا الجهد المبذول في تحديد حجم المصفوفة ، تاركًا التفاصيل لـ PowerShell للتعامل معها.

متى يجب استخدام صفائف PowerShell(PowerShell Arrays)

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

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

حالة الاستخدام الرئيسية لـ Microsoft PowerShell(Microsoft PowerShell’s) هي الأتمتة ، وتلعب المصفوفات دورًا محوريًا في ذلك. يمكن تخزين الكائنات التي تم إرجاعها بواسطة أوامر أوامر PowerShell cmdlets في مصفوفات وتكرارها. (PowerShell)هذا يسمح بتنفيذ المهام المتسلسلة تلقائيًا ، مما يبسط إدارة النظام بشكل كبير.



About the author

أنا مهندس برمجيات بخبرة تزيد عن 10 سنوات في العمل على أجهزة Apple iOS والأجهزة الطرفية. جعلتني تجربتي في هندسة الأجهزة شغوفًا بالتأكد من أن أجهزة عملائنا موثوقة وسلسة قدر الإمكان. لقد كنت أكتب كودًا خلال السنوات القليلة الماضية وتعلمت استخدام Git و Vim و Node.js.



Related posts