วิธีที่ PowerShell For Loop สามารถเรียกใช้คำสั่งได้หลายครั้ง

For loop เป็นหนึ่งในเครื่องมือที่มีค่าที่สุดในภาษาการเขียนโปรแกรมใดๆ(valuable tools in any programming language)และ  Microsoft PowerShellก็ไม่ต่างกัน คุณสามารถใช้ลูปอื่นเพื่อทำซ้ำคำสั่งได้ แต่ For loop อาจจะตรงไปตรงมาที่สุด

ตั้งแต่การวนซ้ำอาร์เรย์ไปจนถึงการใช้งานฟังก์ชันตามจำนวนที่กำหนดไว้ มีหลายสิ่งที่คุณสามารถทำได้ด้วยเครื่องมือนี้ นี่คือการสอนเกี่ยวกับวิธีการใช้ For loops ในPowerShell

การใช้(Use) For LoopsในPowerShellคืออะไร?

ต่างจาก พรอม ต์คำสั่ง(Command Prompt)PowerShellเป็นสภาพแวดล้อมการเขียนสคริปต์ที่สมบูรณ์ ซึ่งหมายความว่าคุณสามารถเขียนสคริปต์ PowerShell(PowerShell scripts) ที่นำกลับมาใช้ใหม่ได้ เพื่อทำงานโดยอัตโนมัติแทนที่จะป้อนคำสั่งด้วยตนเอง และ For loops เป็นกุญแจสำคัญในการเขียนโมดูลเหล่านี้

A สำหรับคำสั่งซ้ำสคริปต์บล็อกตามจำนวนครั้งที่กำหนด แก้ไขตัวแปรที่กำหนดเพื่อติดตามความคืบหน้า วิธีนี้ช่วยให้คุณใช้ลูปสำหรับสถานการณ์ที่ค่อนข้างน่าสนใจได้

คุณสามารถสร้างลำดับของตัวเลข กำหนดจำนวนเฉพาะ หรือแสดงตัวนับเวลาถอยหลัง ในทางปฏิบัติมากขึ้น คุณสามารถวนซ้ำอาร์เรย์ของอ็อบเจ็กต์ ดำเนินการบางอย่างกับแต่ละรายการ

ไวยากรณ์(Syntax)ของFor LoopในPowerShell

For loops ทำงานในWindows PowerShellเหมือนกับที่ทำในภาษาการเขียนโปรแกรมใดๆ นิพจน์ที่เริ่มต้นตัวแปรการติดตาม การทดสอบค่าของตัวแปร และการแก้ไขตัวแปรจะอยู่ภายในวงเล็บหลัง "สำหรับ" ซึ่งคั่นด้วยเครื่องหมายอัฒภาค จากนั้นรายการคำสั่งก็ผูกด้วยวงเล็บปีกกา

สำหรับ ( การเริ่มต้น(Initialization) ; เงื่อนไข(Condition) ; อัปเดต(Update) )

{

    บล็อกสคริปต์(Script Block)

}

วิธีใช้ For LoopในPowerShell Script

การใช้ For loop นั้นค่อนข้างง่าย เมื่อใดก็ตามที่คุณพบสถานการณ์ที่เรียกร้องให้ทำซ้ำขั้นตอนที่แตกต่างกันเล็กน้อย คุณควรใส่ลงในลูป For

สมมติว่าคุณต้องเขียนข้อมูลโค้ดที่สามารถหาผลรวมของจำนวนธรรมชาติทั้งหมดจนกว่าจะได้ตัวเลขnที่มีอยู่ในตัวแปร $n นี่คือตัวอย่าง For loop พื้นฐาน:

$n = 10

$sum = 0

สำหรับ ($i = 1 ; $i -le $n ; $i++)

{

    $sum = $sum + $i

}

“ผลรวมของตัวเลขธรรมชาติ $n คือ $sum”

การเข้าถึงอาร์เรย์ผ่าน For Loop

การสร้างลำดับตัวเลขแทบจะเป็นสิ่งที่คนส่วนใหญ่ใช้PowerShellเพื่อ การใช้งานทั่วไปคือการวนซ้ำอาร์เรย์

สมมติว่า(Say)คุณมีอาร์เรย์ $week ที่มีเจ็ดองค์ประกอบ คุณสามารถแสดงรายการวันที่มีอยู่ในอาร์เรย์ได้โดยใช้ลูป For อย่างง่าย ดังที่แสดงในตัวอย่างต่อไปนี้

สำหรับ ($i = 0 ; $i -lt $week.Length ; $i++)

{

    $สัปดาห์[$i]

}

การใช้ForEach Loopเพื่อ วน ซ้ำอย่างรวดเร็ว(Quickly Iterate)ผ่านอาร์เรย์

อีกรูปแบบหนึ่งของ For loop คือคำสั่งForEach เวอร์ชันนี้ช่วยลดความยุ่งยากในการดูเนื้อหาของอาร์เรย์PowerShell และประมวลผลทีละรายการ (PowerShell)ตัวอย่างเช่น ข้อมูลโค้ดก่อนหน้า สามารถเขียนใหม่ได้ดังนี้:

Foreach ($วันใน $สัปดาห์)

{

    $วัน

}

เมื่อจัดการกับวัตถุที่ซับซ้อนมากขึ้น คุณยังสามารถใช้ Foreach-Object cmdlet เพื่อดำเนินการกับเนื้อหาของคำสั่งPowerShell

For Loop แตกต่าง(Loop Different)จากลูป(Loops)ประเภทอื่น(Types)อย่างไร

For loop ไม่ใช่คำสั่งการวนซ้ำประเภทเดียวที่คุณสามารถใช้ได้ เช่นเดียวกับภาษาโปรแกรมส่วนใหญ่PowerShellมีลูปหลายประเภท

ในขณะที่

ที่ง่ายที่สุดคือลูปในขณะที่ สิ่งที่คุณมีคือเงื่อนไขและบล็อกสคริปต์ และลูปจะทำงานตราบใดที่นิพจน์การทดสอบประเมินว่าเป็นจริง เนื่องจากนิพจน์ได้รับการประเมินก่อน จึงมีโอกาสที่โค้ดจะไม่ทำงานเลยหรือจบลงที่การวนซ้ำแบบอนันต์ 

ในขณะที่ ( เงื่อนไข(Condition) )

{

    บล็อกสคริปต์(Script Block)

}

ทำในขณะที่

หากคุณกำลังเขียนสคริปต์ที่ต้องเรียกใช้อย่างน้อยหนึ่งครั้ง แม้ว่านิพจน์จะประเมินเป็นเท็จก็ตาม คุณสามารถใช้ลูปDo-While ได้ (Do-While)ข้อแตกต่างเพียงอย่างเดียวจากลูป while คือวางบล็อกคำสั่งก่อนเงื่อนไข ซึ่งหมายความว่าโค้ดจะถูกดำเนินการก่อนที่จะตรวจสอบนิพจน์การทดสอบในครั้งแรก

ทำ {

    บล็อกสคริปต์(Script block)

}

ในขณะที่ ( เงื่อนไข(Condition) )

ทำจน

เวอร์ชันอื่นของลูปนี้คือDo -Until (Do-Until)โดยพื้นฐาน(Basically)แล้ว มันจะรันบล็อคโค้ดแล้วทำซ้ำจนกว่านิพจน์การทดสอบจะเป็นจริง – ซึ่งตรงกันข้ามกับลูปDo-While ไม่ใช่โครงสร้างที่มีประโยชน์อย่างยิ่ง เนื่องจากคุณสามารถทำสิ่งเดียวกันให้สำเร็จได้โดยการแก้ไขเงื่อนไขในลูปDo-While มาตรฐาน(Do-While)

ทำ {

    บล็อกสคริปต์(Script Block)

}

ถึง ( เงื่อนไข(Condition) )

ทำไม For Loop ถึงดีกว่า

ปัญหาของโครงสร้างการวนซ้ำอื่นๆ เหล่านี้คือ โครงสร้างเหล่านี้ไม่รวมค่าเริ่มต้นหรือคำสั่งการอัพเดท คุณต้องจำไว้ว่าให้สร้างตัวแปรนอกลูปแล้วเพิ่ม (หรือลดค่าลง) ในทุกรอบของลูป

ตามที่คุณคาดไว้ โปรแกรมเมอร์มักจะลืมขั้นตอนนี้ ส่งผลให้สคริปต์ไม่ทำงานตามที่ตั้งใจไว้ ทำให้เสียเวลาอันมีค่าในการดีบัก

For loop หลีกเลี่ยงปัญหานี้โดยกำหนดให้มีการเริ่มต้นและเพิ่มนิพจน์ภายในวงเล็บเริ่มต้น สิ่งนี้นำไปสู่สคริปต์ที่สะอาดขึ้นและแข็งแกร่งยิ่งขึ้น

คุณควรใช้ For LoopในPowerShell เมื่อ ใด

PowerShellนั้นเกี่ยวกับการสร้างสคริปต์สำหรับการทำงานอัตโนมัติ และอาจเป็นเครื่องมือที่มีประโยชน์ที่สุดสำหรับการบรรลุเป้าหมายนี้คือ For loop คุณสามารถใช้เพื่อแทนที่การดำเนินการคัดลอกและวางจำนวนมากด้วยสคริปต์ที่กะทัดรัดและสวยงามยิ่งขึ้น

ฟังก์ชันทั่วไปที่สุดของลูปนี้คือวนซ้ำในอาร์เรย์ ทีละรายการ สำหรับสคริปต์ที่คล่องตัวยิ่งขึ้น คุณสามารถใช้ForEach loop ได้เช่นกัน คุณยังสามารถใช้ For loop เพื่อสร้างลำดับตัวเลข แม้ว่าจะไม่ค่อยมีความจำเป็นก็ตาม

คะแนน For loop เหนืออัลกอริธึมการวนซ้ำอื่นๆ โดยการรวมฟังก์ชันที่จำเป็นทั้งหมดของลูปเข้าไปในพารามิเตอร์ เพื่อป้องกันข้อผิดพลาดเนื่องจากการลืมคำสั่งเหล่านั้น สิ่งนี้ทำให้ For loop ขาดไม่ได้ในสถานการณ์ใด ๆ ที่เรียกร้องให้ทำซ้ำชุดคำสั่ง



About the author

ฉันเป็นวิศวกรเสียงมืออาชีพที่มีประสบการณ์มากกว่า 10 ปี ฉันทำงานในวงการเพลงมาสองสามปีแล้ว และได้พัฒนาชื่อเสียงที่แข็งแกร่งในสาขานั้น ฉันยังเป็นบัญชีผู้ใช้ที่มีประสบการณ์สูงและดูแลความปลอดภัยของครอบครัวอีกด้วย ความรับผิดชอบของฉันรวมถึงการจัดการบัญชีผู้ใช้ การให้การสนับสนุนลูกค้า และการให้คำแนะนำด้านความปลอดภัยในครอบครัวแก่พนักงาน



Related posts