For loop เป็นหนึ่งในเครื่องมือที่มีค่าที่สุดในภาษาการเขียนโปรแกรมใดๆ และ Microsoft PowerShell ก็ไม่ต่างกัน คุณสามารถใช้ลูปอื่นเพื่อทำซ้ำคำสั่งได้ แต่ For loop อาจจะตรงไปตรงมาที่สุด
ตั้งแต่การวนซ้ำอาร์เรย์ไปจนถึงการดำเนินการฟังก์ชันตามจำนวนครั้งที่กำหนดไว้ล่วงหน้า มีหลายสิ่งที่คุณสามารถทำได้ด้วยเครื่องมือนี้ ต่อไปนี้เป็นบทช่วยสอนเกี่ยวกับวิธีใช้ For loops ใน PowerShell
การใช้ For Loops ใน PowerShell คืออะไร
ต่างจาก Command Prompt ตรงที่ PowerShell เป็นสภาพแวดล้อมการเขียนสคริปต์ที่สมบูรณ์ ซึ่งหมายความว่าคุณสามารถเขียนสคริปต์ PowerShell ที่นำมาใช้ซ้ำได้เพื่อดำเนินงานโดยอัตโนมัติ แทนที่จะป้อนคำสั่งด้วยตนเอง และ For loops คือกุญแจสำคัญในการเขียนโมดูลเหล่านี้
คำสั่ง For จะทำซ้ำบล็อกสคริปต์ตามจำนวนที่กำหนด โดยแก้ไขตัวแปรที่กำหนดเพื่อติดตามความคืบหน้า ซึ่งจะทำให้คุณสามารถใช้การวนซ้ำสำหรับสถานการณ์ที่ค่อนข้างน่าสนใจได้
คุณสามารถสร้างลำดับตัวเลข กำหนดจำนวนเฉพาะ หรือแสดงตัวจับเวลาถอยหลังได้ ในทางปฏิบัติแล้ว คุณสามารถวนซ้ำอาร์เรย์ของอ็อบเจ็กต์ โดยดำเนินการบางอย่างกับแต่ละรายการได้
ไวยากรณ์ของ For Loop ใน PowerShell
For loops ทำงานใน Windows PowerShell เช่นเดียวกับที่ใช้ในภาษาการเขียนโปรแกรมใดๆ นิพจน์ที่เริ่มต้นตัวแปรการติดตาม การทดสอบค่า และการแก้ไขตัวแปรจะอยู่ในวงเล็บตามหลัง "For" คั่นด้วยเครื่องหมายอัฒภาค จากนั้นจะมีรายการคำสั่งที่ผูกด้วยเครื่องหมายปีกกา
สำหรับ (การเริ่มต้น; เงื่อนไข; อัปเดต )
{
บล็อกสคริปต์ ป>
วิธีใช้ For Loop ในสคริปต์ PowerShell
การใช้ For loop นั้นค่อนข้างง่าย เมื่อใดก็ตามที่คุณพบกับสถานการณ์ที่จำเป็นต้องทำซ้ำขั้นตอนที่แตกต่างกันเล็กน้อย คุณควรใส่ไว้ใน For loop
สมมติว่าคุณต้องเขียนโค้ดที่สามารถค้นหาผลรวมของจำนวนธรรมชาติทั้งหมดจนถึงจำนวน n ที่มีอยู่ในตัวแปร $n นี่คือตัวอย่าง For loop พื้นฐาน:
$n =10
$รวม =0
สำหรับ ($i =1; $i -le $n; $i++)
{
$sum =$sum + $i
“ผลรวมของจำนวนธรรมชาติ $n คือ $sum”
การเข้าถึงอาร์เรย์ผ่าน For Loop
การสร้างลำดับตัวเลขไม่ใช่สิ่งที่คนส่วนใหญ่ใช้ PowerShell การใช้งานทั่วไปคือการวนซ้ำอาร์เรย์
สมมติว่าคุณมีอาร์เรย์ $week ที่มีเจ็ดองค์ประกอบ คุณสามารถส่งออกรายการวันที่มีอยู่ในอาร์เรย์ได้โดยใช้ For loop แบบง่าย ดังแสดงในตัวอย่างต่อไปนี้
สำหรับ ($i =0; $i -lt $week.Length; $i++)
{
$สัปดาห์[$i]
การใช้ ForEach Loop เพื่อวนซ้ำอย่างรวดเร็วผ่านอาร์เรย์
อีกรูปแบบหนึ่งของ For loop คือคำสั่ง ForEach เวอร์ชันนี้ช่วยลดความยุ่งยากในการดูเนื้อหาของอาร์เรย์ PowerShell และประมวลผลทีละรายการ ตัวอย่างเช่น ข้อมูลโค้ดก่อนหน้าสามารถเขียนใหม่ได้ดังนี้:
คาดการณ์ ($วันใน $สัปดาห์)
{
$วัน
เมื่อจัดการกับวัตถุที่ซับซ้อนมากขึ้น คุณยังสามารถใช้ Foreach-Object cmdlet เพื่อดำเนินการกับเนื้อหาของคำสั่ง PowerShell ใดก็ได้
For Loop แตกต่างจาก Loop ประเภทอื่นอย่างไร
For loop ไม่ใช่คำสั่งวนซ้ำประเภทเดียวที่คุณสามารถใช้ได้ เช่นเดียวกับภาษาการเขียนโปรแกรมส่วนใหญ่ PowerShell มีลูปหลายประเภท
ในขณะที่
สิ่งที่ง่ายที่สุดคือวง While สิ่งที่คุณมีคือเงื่อนไขและบล็อกสคริปต์ และการวนซ้ำจะทำงานตราบใดที่นิพจน์ทดสอบประเมินว่าเป็นจริง เนื่องจากนิพจน์ได้รับการประเมินก่อน จึงมีโอกาสที่โค้ดจะไม่ทำงานเลยหรือจบลงด้วยการวนซ้ำไม่สิ้นสุด ป>
ในขณะที่ (เงื่อนไข )
{
บล็อกสคริปต์ ป>
ทำในขณะที่
หากคุณกำลังเขียนสคริปต์ที่ต้องรันอย่างน้อยหนึ่งครั้ง แม้ว่านิพจน์จะประเมินว่าเป็นเท็จ คุณก็สามารถใช้ลูป Do-While ได้ ข้อแตกต่างเพียงอย่างเดียวจากลูป While คือการวาง Command Block ก่อนเงื่อนไข ซึ่งหมายความว่าโค้ดจะถูกดำเนินการก่อนที่จะตรวจสอบนิพจน์ทดสอบเป็นครั้งแรก
ทำ {
บล็อกสคริปต์ ป>
ในขณะที่ (เงื่อนไข )
ทำจนถึง
อีกเวอร์ชันหนึ่งของลูปนี้คือ Do-Until โดยพื้นฐานแล้ว มันจะรันบล็อกโค้ดแล้วทำซ้ำจนกว่านิพจน์การทดสอบจะเป็นจริง ซึ่งเป็นการย้อนกลับของลูป Do-While ไม่ใช่โครงสร้างที่มีประโยชน์อย่างยิ่ง เนื่องจากคุณสามารถบรรลุสิ่งเดียวกันได้โดยการแก้ไขเงื่อนไขในลูป Do-While มาตรฐาน
ทำ {
บล็อกสคริปต์ ป>
จนกระทั่ง (เงื่อนไข )
เหตุใด For Loop จึงดีกว่า
ปัญหาเกี่ยวกับโครงสร้างการวนซ้ำอื่นๆ เหล่านี้ก็คือ ไม่มีค่าเริ่มต้นหรือคำสั่งอัพเดต คุณต้องจำไว้ว่าต้องสร้างตัวแปรนอกลูปด้วยตนเอง จากนั้นจึงเพิ่ม (หรือลดค่า) ในแต่ละรอบของลูป
อย่างที่คุณคาดหวัง โปรแกรมเมอร์มักจะลืมขั้นตอนนี้ ส่งผลให้สคริปต์ไม่ทำงานตามที่ตั้งใจไว้ ซึ่งจะทำให้เสียเวลาอันมีค่าในการดีบัก
การวนซ้ำ For จะช่วยหลีกเลี่ยงปัญหานี้โดยจำเป็นต้องมีการเริ่มต้นและนิพจน์ที่เพิ่มขึ้นภายในวงเล็บเริ่มต้น สิ่งนี้นำไปสู่สคริปต์ที่สะอาดและแข็งแกร่งยิ่งขึ้น
เมื่อใดที่คุณควรใช้ For Loop ใน PowerShell
PowerShell เป็นเรื่องเกี่ยวกับการสร้างสคริปต์สำหรับระบบอัตโนมัติ และเครื่องมือที่มีประโยชน์ที่สุดในการบรรลุเป้าหมายนี้คือ For loop คุณสามารถใช้มันเพื่อแทนที่การดำเนินการคัดลอกและวางหลายๆ รายการด้วยสคริปต์ที่กะทัดรัดและสวยงามยิ่งขึ้น
ฟังก์ชันที่พบบ่อยที่สุดของลูปนี้คือการวนซ้ำบนอาร์เรย์ ทีละรายการ หากต้องการสคริปต์ที่มีประสิทธิภาพยิ่งขึ้น คุณสามารถใช้ ForEach loop ได้เช่นกัน คุณยังสามารถใช้ For loop เพื่อสร้างลำดับตัวเลขได้ แม้ว่าจะไม่ค่อยจำเป็นก็ตาม
คะแนน For loop เหนืออัลกอริธึมการวนซ้ำอื่นๆ โดยรวมฟังก์ชันที่จำเป็นทั้งหมดของลูปไว้ในพารามิเตอร์ ช่วยป้องกันข้อผิดพลาดใดๆ เนื่องจากการลืมคำสั่งเหล่านั้น สิ่งนี้ทำให้ For loop เป็นสิ่งที่ขาดไม่ได้ในทุกสถานการณ์ที่เรียกร้องให้ทำซ้ำชุดคำสั่ง