Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> ซอฟต์แวร์

Master PowerShell สำหรับลูป:ดำเนินการคำสั่งซ้ำๆ อย่างง่ายดาย

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

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

Master 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

Master PowerShell สำหรับลูป:ดำเนินการคำสั่งซ้ำๆ อย่างง่ายดาย

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

$n =10

$รวม =0

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

{

$sum =$sum + $i

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

Master PowerShell สำหรับลูป:ดำเนินการคำสั่งซ้ำๆ อย่างง่ายดาย

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

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

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

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

{

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

Master PowerShell สำหรับลูป:ดำเนินการคำสั่งซ้ำๆ อย่างง่ายดาย

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

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

คาดการณ์ ($วันใน $สัปดาห์)

{

$วัน

Master PowerShell สำหรับลูป:ดำเนินการคำสั่งซ้ำๆ อย่างง่ายดาย

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

For Loop แตกต่างจาก Loop ประเภทอื่นอย่างไร

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

ในขณะที่

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

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

{

บล็อกสคริปต์

Master PowerShell สำหรับลูป:ดำเนินการคำสั่งซ้ำๆ อย่างง่ายดาย

ทำในขณะที่

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

ทำ {

บล็อกสคริปต์

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

Master PowerShell สำหรับลูป:ดำเนินการคำสั่งซ้ำๆ อย่างง่ายดาย

ทำจนถึง

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

ทำ {

บล็อกสคริปต์

จนกระทั่ง (เงื่อนไข )

Master PowerShell สำหรับลูป:ดำเนินการคำสั่งซ้ำๆ อย่างง่ายดาย

เหตุใด For Loop จึงดีกว่า

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

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

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

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

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

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

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