متغیرها اساسی ترین ساختار داده در هر نوع کدنویسی هستند. اما متغیرهای منفرد برای بیشتر اهداف به سختی کافی هستند، به خصوص زمانی که با الگوریتم های پیچیده تر سروکار داریم.
این جایی است که آرایه ها وارد می شوند. چه در C++ چه پایتون ، آرایه ها در هر زبان برنامه نویسی به شکلی وجود دارند. اما در مورد Windows PowerShell چطور؟ آرایه های PowerShell چگونه کار می کنند؟ چطور از آن ها استفاده می کنید؟ نحو آنها چیست؟ بیایید پیدا کنیم.
آرایه های PowerShell 101
به زبان ساده، یک آرایه فقط مجموعه ای ساختار یافته از متغیرها است. ایده این است که با جمع کردن متغیرهای مرتبط در یک مجموعه شماره گذاری شده، دردسر ردیابی ده ها نام را از بین ببریم.
در PowerShell، میتوانید با اضافه کردن نماد $ به نام متغیر، یک متغیر ایجاد کنید. به عنوان مثال:
$prime = 13
متغیر می تواند شامل هر نوع داده ای باشد، از اعداد گرفته تا رشته ها. شما فقط باید از نقل قول های دوتایی یا تکی برای تعیین یک رشته استفاده کنید.
$name = "لوین"
اکنون برای ایجاد یک آرایه جدید، به سادگی چندین مقدار را به یک متغیر اختصاص دهید که با کاما از هم جدا شده اند. مانند این:
$week = "دوشنبه"، "سه شنبه"، "چهارشنبه"، "پنجشنبه"، "جمعه"، "شنبه"، "یکشنبه"
بعضی از افراد ترجیح میدهند برای جلوگیری از سردرگمی، یک متغیر را به صراحت در یک آرایه قرار دهند، اگرچه این ضروری نیست. برای انجام این کار، مقادیر را در پرانتز با علامت @ قرار دهید.
$week = @(«دوشنبه»، «سهشنبه»، «چهارشنبه»، «پنجشنبه»، «جمعه»، «شنبه»، «یکشنبه»)
این معمولاً هنگام تلاش برای قرار دادن خروجی دستورات دیگر در یک آرایه مفید است، جایی که نمیتوانید آنها را به صورت دستی در قالب صحیح بنویسید.
ایجاد آرایه
ما قبلاً متداولترین روش ایجاد آرایه را دیدهایم. اما بسته به شرایط، راه های دیگری نیز وجود دارد که ممکن است مناسب تر باشند. برای مثال، اگر میخواهید آرایهای ایجاد کنید که شامل محدودهای از اعداد باشد، میتوانید از عملگر محدوده استفاده کنید:
$ رقم = (0..9)
با این کار یک آرایه از تمام ده رقم از صفر تا نه ایجاد می شود. همچنین میتوانید یک آرایه خالی را مقداردهی اولیه کنید، در صورتی که فقط مکانی برای ذخیره مقادیر بعداً میخواهید..
$values = @()
آرایههای متعدد حتی میتوانند درون یکدیگر قرار بگیرند، اگرچه این نوع استفاده میتواند خیلی سریع گیجکننده شود.
$ مختصات = @(
(5، 10، 23)،
(11، 7، 16)
)
بهطور پیشفرض یک آرایه میتواند هر نوع متغیری را ذخیره کند، اعم از اعداد، رشتهها یا ترکیبی از هر دو. اما در صورتی که بخواهید مقادیر قرار داده شده در آن را محدود کنید، می توانید به صراحت یک نوع را تعریف کنید. به عنوان مثال:
[int[]] $numbers = 2,3,4,5
به این ترتیب، آرایه فقط می تواند اعداد صحیح را نگه دارد. تلاش برای تخصیص هر نوع مقدار دیگری به آن یک خطا برمیگرداند. این می تواند برای جلوگیری از خطاهای ساده برای آرایه هایی که منحصراً با مقادیر عددی کار می کنند مفید باشد، زیرا وارد کردن یک رشته در متغیری که در محاسبات استفاده می شود، مشکلاتی را ایجاد می کند.
دسترسی به آرایه ها
تاکنون روشهای متعددی برای ایجاد آرایههای حاوی انواع مختلف داده دیدهایم. اما چگونه میتوانید به این دادهها دسترسی پیدا کنید؟
آرایه های PowerShell از همان فرمتی استفاده می کنند که توسط سایر زبان های برنامه نویسی استفاده می شود. هر متغیر آرایه را می توان با شماره شاخص آن دسترسی داشت. به عنوان مثال:
$var = $numbers[5]
این مقدار ذخیره شده در فهرست پنج آرایه $numbersرا در متغیر $varکپی میکند. توجه داشته باشید که شمارش شاخص های آرایه از 0 شروع می شود، بنابراین اولین مورد با صفر قابل دسترسی است.
اگر بخواهیم این را خروجی بگیریم، برای مثال:
«$days[2]»
چهارشنبه خواهیم داشت، نه سه شنبه.
می توانید از همین روش برای تغییر این مقادیر نیز استفاده کنید. برای مثال، دستور زیر عنصر دوم آرایه را به صفر تغییر می دهد:
$numbers[1] = 0
همچنین میتوانید به جای تغییر مقادیر ورودیهای فعلی فقط با اضافه کردن آنها مانند یک عبارت حسابی، عناصر بیشتری را به آرایه موجود اضافه کنید.
$names += «جانی»
از این روش می توان برای افزودن چندین ورودی به طور همزمان یا حتی کل آرایه نیز استفاده کرد.
$names += «چارلی، لیام، ترزا»
$names += $snames
روش جدا شده با کاما برای دسترسی به چندین عنصر آرایه نیز صادق است. برای مثال، با وارد کردن این، پنج عنصر اول $daysدر $weekdaysذخیره میشود..
$روزهای هفته = $روز[0،1،2،3،4]
تکرار از طریق آرایه ها
دسترسی دستی به عناصر خاص یک آرایه خوب و خوب است، اما اگر بخواهید اقداماتی را روی کل محتوای یک آرایه انجام دهید، ممکن است خسته کننده شود. یک روش زیباتر استفاده از حلقه For است.
حلقههای For میتوانند به طور سیستماتیک از میان تمام عناصر یک آرایه عبور کنند و هر مقدار را طبق دستورالعملها پردازش کنند. اینگونه می توانید چنین حلقه ای بسازید:
برای ($i = 0 ; $i -lt $days. Length ; $i++)
{
$days[$i]
}
تابع array.Length اندازه آرایه را برمیگرداند که اساساً تعداد عناصر موجود در آن است. این را می توان به پارامتر بیان تست حلقه For متصل کرد تا به طور جامع روی همه عناصر تکرار شود.
حلقه Foreach و حلقه Foreach-object میتوانند همین کار را با یک اسکریپت PowerShell حتی باریکتر انجام دهند.
Foreach ($day در $days)
{
$day
}
این کار شما را در تلاش برای تعیین اندازه آرایه صرفهجویی میکند و جزئیات را به PowerShell واگذار میکند.
چه زمانی باید از آرایه های PowerShell استفاده کنید
بزرگترین منبع اشکالات در یک اسکریپت پیچیده، متغیرهایی است که به اشتباه ارجاع داده شده اند. این به دلیل وجود تعداد زیادی متغیر با نام منحصربهفرد اتفاق میافتد که یادآوری هدف آنها را دشوار میکند.
ساده ترین راه حل برای این مشکل استفاده گسترده از آرایه ها است. همه متغیرهایی که به نوعی مرتبط هستند را می توان به یک آرایه اختصاص داد و از طریق شماره فهرست آنها به آنها دسترسی داشت.
مایکروسافت پاورشل مورد استفاده اصلی اتوماسیون است و آرایه ها نقشی اساسی در آن دارند. اشیاء بازگردانده شده توسط cmdlet های PowerShell را می توان در آرایه ها ذخیره کرد و دوباره تکرار کرد. این اجازه می دهد تا کارهای متوالی به طور خودکار انجام شوند و مدیریت سیستم را بسیار ساده می کند.
.