چگونه یک PowerShell For Loop می تواند یک فرمان را چندین بار اجرا کند

حلقه For یکی از ابزارهای ارزشمند در هر زبان برنامه نویسی ترین ها است و Microsoft PowerShell هم تفاوتی ندارد. می توانید از حلقه های دیگر برای تکرار دستورات استفاده کنید، اما حلقه For شاید ساده ترین آنها باشد.

از تکرار روی آرایه ها تا اجرای یک تابع در تعداد دفعات از پیش تعیین شده، چیزهای زیادی وجود دارد که می توانید با این ابزار به دست آورید. در اینجا یک آموزش در مورد نحوه استفاده از حلقه های For در PowerShell وجود دارد.

استفاده از حلقه های For در PowerShell چیست؟

بر خلاف خط فرمان ، PowerShell یک محیط اسکریپت نویسی کامل است. این بدان معناست که می‌توانید اسکریپت های پاورشل قابل استفاده مجدد بنویسید تا به‌جای وارد کردن دستی دستورات، وظایف را به‌طور خودکار انجام دهید. و حلقه‌های For کلید نوشتن این ماژول‌ها هستند.

یک دستور For یک بلوک اسکریپت را چندین بار تکرار می کند و یک متغیر معین را برای پیگیری پیشرفت تغییر می دهد. این به شما امکان می‌دهد از حلقه برای سناریوهای نسبتاً جالب استفاده کنید.

می توانید دنباله ای از اعداد را ایجاد کنید، یک عدد اول را تعیین کنید، یا یک تایمر شمارش معکوس نمایش دهید. به طور عملی تر، می توانید روی آرایه ای از اشیاء تکرار کنید و با هر ورودی مقداری عمل انجام دهید.

سیستکس یک حلقه For در PowerShell

حلقه‌ها در Windows PowerShell مانند هر زبان برنامه‌نویسی کار می‌کنند. عباراتی که متغیر ردیابی را مقداردهی می‌کنند، مقدار آن را آزمایش می‌کنند و متغیر را تغییر می‌دهند، در داخل پرانتزهای زیر "For" قرار می‌گیرند که با نقطه ویرگول از هم جدا شده‌اند. سپس لیست دستورات خود با پرانتزهای فرفری محدود شده است.

برای (آغازسازی؛ شرایط؛ به‌روزرسانی)

    مسدود اسکریپت

}

نحوه استفاده از حلقه For در اسکریپت PowerShell

استفاده از حلقه For بسیار ساده است. هر زمان که با موقعیتی مواجه شدید که نیاز به تکرار یک مرحله کمی متفاوت دارد، باید آن را در یک حلقه For قرار دهید.

فرض کنید باید یک قطعه کد بنویسید که بتواند مجموع همه اعداد طبیعی را تا عدد nموجود در متغیر $n بیابد. در اینجا یک مثال اولیه برای حلقه For آمده است:

$n = 10

$sum = 0

برای ($i = 1 ; $i -le $n ; $i++)

    $sum = $sum + $i

}

"مجموع $n عدد طبیعی $sum است"

دسترسی به آرایه ها از طریق یک حلقه For

.

تولید دنباله های عددی به سختی چیزی است که بیشتر مردم از PowerShell برای آن استفاده می کنند. یک کاربرد رایج تر، تکرار روی یک آرایه است.

مثلاً یک آرایه $week با هفت عنصر دارید. همانطور که در مثال زیر نشان داده شده است، می توانید لیست روزهای موجود در آرایه را با استفاده از یک حلقه For ساده خروجی بگیرید.

برای ($i = 0 ; $i -lt $week.Length ; $i++)

    $week[$i]

}

استفاده از حلقه ForEach برای تکرار سریع از طریق آرایه

شکل دیگری از حلقه For عبارت ForEach است. این نسخه مرور محتویات یک آرایه PowerShell و پردازش آنها را به صورت جداگانه ساده می کند. برای مثال، قطعه کد قبلی را می توان به این صورت بازنویسی کرد:

Foreach ($day در $week)

    $day

}

هنگامی که با اشیاء پیچیده‌تر سروکار دارید، می‌توانید از cmdlet Foreach-Object نیز برای انجام یک عمل بر روی محتویات هر فرمان PowerShell استفاده کنید.

حلقه For چه تفاوتی با سایر انواع حلقه ها دارد؟

حلقه For تنها نوع دستور حلقه در دسترس شما نیست. مانند بسیاری از زبان های برنامه نویسی، PowerShell دارای چندین نوع حلقه است.

در حالی که

ساده ترین آنها حلقه while است. تنها چیزی که در اختیار دارید یک شرط و یک بلوک اسکریپت است و تا زمانی که عبارت تست درست ارزیابی شود، حلقه اجرا می شود. از آنجایی که عبارت ابتدا ارزیابی می شود، این شانس وجود دارد که کد به هیچ وجه اجرا نشود یا به عنوان یک حلقه بی نهایت ختم شود.

در حالی که (شرایط)

    مسدود اسکریپت

}

Do-While

اگر در حال نوشتن یک اسکریپت هستید که باید حداقل یک بار اجرا شود - حتی اگر عبارت اشتباه ارزیابی شود - می توانید از حلقه Do-While استفاده کنید. تنها تفاوت با حلقه while این است که بلوک فرمان را قبل از شرط قرار می دهد، به این معنی که کد قبل از اینکه عبارت تست برای اولین بار بررسی شود اجرا می شود.

{

را انجام دهید

    بلوک اسکریپت

}

در حالی که (شرایط)

انجام شود

نسخه دیگری از این حلقه Do-Until است. اساسا، بلوک کد را اجرا می کند و سپس آن را تکرار می کند تا عبارت تست درست باشد - معکوس یک حلقه Do-Wile. ساختار چندان مفیدی نیست، زیرا می‌توانید با تغییر شرط در یک حلقه Do-While استاندارد به همان چیزی برسید..

{

را انجام دهید

    مسدود اسکریپت

}

تا (شرایط)

چرا حلقه For بهتر است

مشکل همه این ساختارهای حلقه‌ای دیگر این است که مقادیر اولیه یا عبارات به‌روزرسانی را شامل نمی‌شوند. باید به صورت دستی به یاد داشته باشید که یک متغیر در خارج از حلقه ایجاد کنید و سپس آن را در طول هر عبور از حلقه افزایش دهید (یا کاهش دهید).

همانطور که ممکن است انتظار داشته باشید، برنامه نویسان اغلب این مرحله را فراموش می کنند که منجر به اسکریپتی می شود که آنطور که در نظر گرفته شده کار نمی کند. این باعث اتلاف وقت گرانبها در اشکال زدایی می شود.

حلقه For از این مشکل با نیاز به عبارات اولیه و افزایش در براکت های شروع جلوگیری می کند. این منجر به اسکریپت های تمیزتر و قوی تر می شود.

چه زمانی باید از حلقه For در PowerShell استفاده کرد؟

PowerShell همه چیز در مورد ایجاد اسکریپت برای اتوماسیون است. و احتمالا مفیدترین ابزار برای دستیابی به این حلقه For است. می توانید از آن برای جایگزینی بسیاری از عملیات کپی-پیست با یک اسکریپت فشرده تر و زیباتر استفاده کنید.

متداول ترین عملکرد این حلقه تکرار روی یک آرایه، یک ورودی در یک زمان است. برای یک اسکریپت ساده تر، می توانید از حلقه ForEach نیز استفاده کنید. همچنین می‌توانید از حلقه For برای تولید دنباله‌های عددی استفاده کنید، اگرچه به ندرت به آن نیاز است.

حلقه For با گنجاندن تمام توابع ضروری یک حلقه در پارامترها، نسبت به سایر الگوریتم های حلقه امتیاز می گیرد و از هرگونه خطای ناشی از فراموشی آن عبارات جلوگیری می کند. این امر باعث می‌شود حلقه For در هر سناریویی که برای تکرار مجموعه‌ای از دستورات درخواست می‌کند ضروری باشد.

.

پست های مرتبط:


5.04.2022