Làm thế nào một PowerShell cho vòng lặp có thể chạy một lệnh nhiều lần

0

Vòng lặp For là một trong những công cụ có giá trị nhất trong bất kỳ ngôn ngữ lập trình nào và Microsoft PowerShell cũng không khác. Bạn có thể sử dụng các vòng lặp khác để lặp lại các lệnh, nhưng vòng lặp For có lẽ là đơn giản nhất.

Từ việc lặp lại các mảng cho đến thực hiện một chức năng với số lần định trước, bạn có thể đạt được rất nhiều điều với công cụ này. Đây là hướng dẫn về cách sử dụng vòng lặp For trong PowerShell.

Việc sử dụng các vòng lặp trong PowerShell là gì?

Không giống như Dấu nhắc Lệnh, PowerShell là một môi trường tập lệnh hoàn chỉnh. Điều này có nghĩa là bạn có thể viết các tập lệnh PowerShell có thể tái sử dụng để tự động thực hiện các tác vụ thay vì nhập lệnh theo cách thủ công. Và các vòng lặp For chính là chìa khóa để viết các module này.

Câu lệnh For lặp lại khối tập lệnh một số lần cụ thể, sửa đổi một biến đã cho để theo dõi tiến trình. Điều này cho phép bạn sử dụng vòng lặp cho một số tình huống khá thú vị.

Bạn có thể tạo các dãy số, xác định số nguyên tố hoặc hiển thị đồng hồ đếm ngược. Thực tế hơn, bạn có thể lặp qua một mảng các đối tượng, thực hiện một số hành động với mỗi mục nhập.

Cú pháp của vòng lặp For trong PowerShell

Đối với các vòng lặp hoạt động trong Windows PowerShell giống như cách chúng hoạt động trong bất kỳ ngôn ngữ lập trình nào. Các biểu thức khởi tạo biến theo dõi, kiểm tra giá trị của nó và sửa đổi biến được đặt trong dấu ngoặc đơn sau “Dành cho”, được phân tách bằng dấu chấm phẩy. Sau đó, đến danh sách câu lệnh bị ràng buộc bởi dấu ngoặc nhọn.

Vì (Khởi tạo; Điều kiện; Cập nhật)

{

Khối tập lệnh

}

Cách sử dụng Vòng lặp For trong Tập lệnh PowerShell

Sử dụng vòng lặp For khá đơn giản. Bất cứ khi nào bạn gặp một tình huống yêu cầu lặp lại một bước hơi khác, bạn nên đặt nó vào vòng lặp For.

Giả sử bạn cần viết một đoạn mã có thể tìm tổng của tất cả các số tự nhiên cho đến một số N, chứa trong biến $n. Đây là một ví dụ về vòng lặp For cơ bản:

$n = 10

tổng $ = 0

Đối với ($i = 1 ; $i -le $n ; $i++)

{

$sum = $sum + $i

}

“Tổng của $n số tự nhiên là $sum”

Truy cập mảng thông qua vòng lặp For

Hầu hết mọi người sử dụng PowerShell hầu như không tạo ra các chuỗi số. Một cách sử dụng phổ biến hơn là lặp qua một mảng.

Giả sử bạn có một mảng $week với bảy phần tử. Bạn có thể xuất danh sách các ngày có trong mảng bằng cách sử dụng vòng lặp For đơn giản, như minh họa trong ví dụ sau.

Đối với ($i = 0 ; $i -lt $week.Length ; $i++)

{

$tuần[$i]

}

Sử dụng vòng lặp ForEach để lặp nhanh qua một mảng

Một dạng khác của vòng lặp For là câu lệnh ForEach. Phiên bản này đơn giản hóa việc xem qua nội dung của một mảng PowerShell và xử lý chúng riêng lẻ. Ví dụ, đoạn mã trước có thể được viết lại như sau:

Foreach ($ngày trong $tuần)

{

$ngày

}

Khi xử lý các đối tượng phức tạp hơn, bạn cũng có thể sử dụng lệnh ghép ngắn Foreach-Object để thực hiện một hành động đối với nội dung của bất kỳ lệnh PowerShell nào.

Vòng lặp For khác với các loại vòng lặp khác như thế nào?

Vòng lặp For không phải là loại câu lệnh lặp duy nhất có sẵn cho bạn. Giống như hầu hết các ngôn ngữ lập trình, PowerShell có nhiều loại vòng lặp.

Trong khi

Đơn giản nhất trong số này là vòng lặp While. Tất cả những gì bạn có là một điều kiện và một khối tập lệnh, và vòng lặp sẽ chạy miễn là biểu thức kiểm tra được đánh giá là đúng. Vì biểu thức được ước tính trước, nên có khả năng mã hoàn toàn không chạy hoặc kết thúc dưới dạng một vòng lặp vô hạn.

Trong khi (Điều kiện)

{

Khối tập lệnh

}

Làm trong khi

Nếu bạn đang viết một tập lệnh cần chạy ít nhất một lần – ngay cả khi biểu thức đánh giá là sai—thì bạn có thể sử dụng vòng lặp Do-While. Điểm khác biệt duy nhất so với vòng lặp While là nó đặt khối lệnh trước điều kiện, nghĩa là mã được thực thi trước khi biểu thức kiểm tra được kiểm tra lần đầu tiên.

Làm {

khối tập lệnh

}

Trong khi (Điều kiện)

Làm cho đến khi

Một phiên bản khác của vòng lặp này là Do-Until. Về cơ bản, nó chạy khối mã và sau đó lặp lại nó cho đến khi biểu thức kiểm tra là đúng – ngược lại với vòng lặp Do-While. Không phải là một cấu trúc đặc biệt hữu ích, vì bạn có thể đạt được điều tương tự bằng cách sửa đổi điều kiện trong vòng lặp Do-While tiêu chuẩn.

Làm {

Khối tập lệnh

}

Cho đến khi (Điều kiện)

Tại sao vòng lặp For tốt hơn

Vấn đề với tất cả các cấu trúc vòng lặp khác này là chúng không bao gồm các câu lệnh cập nhật hoặc giá trị ban đầu. Bạn phải nhớ thủ công để tạo một biến bên ngoài vòng lặp và sau đó tăng (hoặc giảm) nó trong mỗi lần vượt qua vòng lặp.

Như bạn có thể đoán, lập trình viên thường quên bước này, dẫn đến kịch bản không hoạt động như ý muốn. Điều này gây lãng phí thời gian quý báu trong việc gỡ lỗi.

Vòng lặp For tránh vấn đề này bằng cách yêu cầu các biểu thức khởi tạo và gia tăng trong dấu ngoặc bắt đầu. Điều này dẫn đến các tập lệnh sạch hơn, mạnh mẽ hơn.

Khi nào bạn nên sử dụng vòng lặp For trong PowerShell?

PowerShell là tất cả về việc tạo tập lệnh để tự động hóa. Và có lẽ công cụ hữu ích nhất để đạt được điều này là vòng lặp For. Bạn có thể sử dụng nó để thay thế nhiều thao tác sao chép-dán bằng một tập lệnh nhỏ gọn hơn, trang nhã hơn.

Chức năng phổ biến nhất của vòng lặp này là lặp qua một mảng, mỗi lần một mục. Đối với tập lệnh được sắp xếp hợp lý hơn nữa, bạn cũng có thể sử dụng vòng lặp ForEach. Bạn cũng có thể sử dụng vòng lặp For để tạo các dãy số, mặc dù điều đó hiếm khi cần thiết.

Vòng lặp For ghi điểm hơn các thuật toán vòng lặp khác bằng cách đưa tất cả các chức năng thiết yếu của một vòng lặp vào các tham số, ngăn ngừa bất kỳ lỗi nào do quên các câu lệnh đó. Điều này làm cho vòng lặp For không thể thiếu trong bất kỳ tình huống nào yêu cầu lặp lại một tập lệnh.

Leave A Reply

Your email address will not be published.