Tất nhiên không một ai thích chờ đợi bao giờ cả, tất cả chúng ta đều muốn công việc hoàn thành ngay lập tức, nhưng không phải lúc nào điều đó cũng có thể. Mọi thứ cần phải có thời gian và bạn buộc phải chấp nhận chờ đợi một khoảng thời gian để quá trình được hoàn tất, đây chính là lý do để tạo progress bar trong PowerShell để người dùng có thể nhận ra rằng quá trình được diễn ra.
Trong thực tế PowerShell phải tương tác với nhiều hệ thống khác nhau và có lịch làm việc riêng. Khi script chiếm nhiều thời gian, và người viết script nhận thức được điều này, bổ sung các chỉ thị quan trọng để người dùng nhận thức được rằng có gì đó đang xảy ra thay vì cứ vài phút nhìn chằm chằm vào con trỏ nhấp nháy.
Người viết script có một vài lựa chọn để xây dựng các tín hiệu trực quan cho người dùng nhận biết những gì đang xảy ra trên nền background. Có thể lựa chọn sử dụng các tài liệu tham khảo Write-Verbose hoặc Write-Information để thông báo tình trạng. Hoặc có thể sử dụng progress bar được tích hợp sẵn trong PowerShell, hỗ trợ hiển thị thông báo và hiển thị biểu đồ bằng đồ thị tỷ lệ phần trăm công việc đã thực hiện.
Giả sử một nhiệm vụ trong script của bạn có thể mất đến vài phút. Thay vì buộc người dùng nhìn chằm chằm vào con trỏ nhấp nháy, bạn có thể tạo Progress Bar trong PowerShell .
Trước tiên cần xác nhận thanh progress bar mà bạn tạo sẽ được hiển thị. Để kiểm soát khả năng hiển thị của progress bar, PowerShell có một biến tự động được gọi là $ProgressPreference. Mặc định biến này được thiết lập là Continue, nhưng nếu vì một lý do nào đó mà biến được thiết lập là SilentlyContinue, progress bar sẽ không được hiển thị.
Sau khi xác nhận xong, bạn có thể nhìn thấy thanh progress bar. Thanh progress bar bao gồm 3 khu vực được biểu diễn bằng các tham số lệnh Write-Progress cmdlet, tiêu đề của nhiệm vụ (Activity - hoạt động), các nhiệm vụ phụ (Status - trạng thái) và phần trăm hoàn thành nhiệm vụ (PercentComplete).
Để mở và cập nhật progress bar khi nó đang chạy, bạn sử dụng lệnh Write-Progress cmdlet. Nếu Write-Progress chạy riêng chỉ hiển thị các process chạy lâu (long-running process). Để kiểm tra progress bar, tạo một vòng lặp vô hạn để chạy liên tục.
while ($true) { write-progress -Activity 'Doing thing'; sleep 1 }
Trong hình trên, bạn có thể thấy chỉ có một hoạt động duy nhất. Nhưng bạn có thể thêm một số nhiệm vụ phụ trong đó.
$i = 0
while ($true) {
Write-Progress -Activity 'Doing thing' -Status "Did thing $i times"
sleep 1
$i++
}
Khi đoạn code trên chạy, bạn sẽ nhìn thấy có một “subactivity” nằm ở phía dưới hiển thị những gì đang xảy ra. Bước tiếp theo là thêm chỉ số phần trăm nhiệm vụ đã hoàn thành.
$totalTimes = 10
$i = 0
for ($i=0;$i -lt $totalTimes; $i++) {
$percentComplete = ($i / $totalTimes) * 100
Write-Progress -Activity 'Doing thing' -Status "Did thing $i times" -PercentComplete $percentComplete
sleep 1
}
Lúc này bạn đã hoàn thành việc tạo Progress Bar trong PowerShell . Sử dụng 3 tham số cùng với Write-Progress là tất cả những gì mà bạn cần để bắt đầu xây dựng một thanh progress bar trực quan.
Trong bài viết này Taimienphi.vn vừa hướng dẫn bạn cách tạo Progress Bar trong PowerShell. Đây là một tiện ích rất hữu dụng đối với người dùng Windows, không chỉ cho phép người dùng tạo progress bar, người dùng còn có thể Trim SSD bằng Powershell mà không gặp bất kỳ khó khăn nào. Nếu có bất kỳ thắc mắc hoặc câu hỏi nào cần giải đáp bạn có thể để lại ý kiến của mình trong phần bình luận bên dưới bài viết, Taimienphi.vn sẽ giải đáp các thắc mắc của bạn sớm nhất có thể.