Cách vòng lặp PowerShell For có thể chạy lệnh nhiều lần


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

Từ việc lặp lại các mảng đến thực hiện một hàm với số lần xác định trước, bạn có thể đạt được 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.

Công dụng của vòng lặp For 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 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à vòng lặp For 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 với số lần cụ thể, sửa đổi một biến nhất định để 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 chuỗi 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 lại một mảng đố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

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 sau “For”, được phân tách bằng dấu chấm phẩy. Sau đó là danh sách câu lệnh được giới hạn bởi dấu ngoặc nhọn.

Dành cho (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 phải tình huống yêu cầu lặp lại một bước hơi khác một chút, bạn nên đặt bước đó 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 số n, chứa trong biến $n. Đây là một ví dụ cơ bản về vòng lặp For:

$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

.

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

Giả sử bạn có một mảng $week có bảy phần tử. Bạn có thể xuất danh sách các ngày có trong mảng bằng vòng lặp For đơn giản, như được 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ả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ư thế này:

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 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 đánh giá là đúng. Vì biểu thức được đánh giá trước tiên nên có khả năng mã sẽ 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 đượ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 cho đến khi biểu thức kiểm tra là đúng – đảo ngược của vòng lặp Do-while. Đây 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 (Điều kiện)

Tại sao vòng lặp For lại 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 giá trị ban đầu hoặc câu lệnh cập nhật. Bạn phải nhớ tạo một biến bên ngoài vòng lặp theo cách thủ công rồi 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 trước, các lập trình viên thường quên bước này, dẫn đến tập lệnh không hoạt động như dự kiến. Điều này lãng phí thời gian quý báu trong việc gỡ lỗi.

Vòng lặp For tránh được vấn đề này bằng cách yêu cầu các biểu thức khởi tạo và tăng dần trong dấu ngoặc bắt đầu. Điều này giúp tạo ra 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 tập trung vào việc tạo tập lệnh cho 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, 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. Để có 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 ra các chuỗi 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 lặp khác bằng cách đưa tất cả các chức năng thiết yếu của 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 hợp lệnh.

.

bài viết liên quan:


5.04.2022