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