Lặp qua các tệp trong một thư mục bằng PowerShell

Lap Qua Cac Tep Trong Mot Thu Muc Bang Powershell



PowerShell có thể được coi là giải pháp viết kịch bản cho phép tất cả các phương tiện tự động hóa. Nó có khả năng thực hiện tất cả các hoạt động liên quan đến “ Chương trình quản lý dữ liệu ”, chẳng hạn như sao chép, xóa, di chuyển hoặc đổi tên tệp. Hơn nữa, PowerShell có thể lặp qua các tệp trong một thư mục bằng cách sử dụng các phương thức hoặc lệnh cụ thể. Trong lập trình, vòng lặp là một chuỗi các lệnh chạy liên tục cho đến khi một điều kiện cụ thể được đáp ứng.

Bài viết này sẽ bao gồm một hướng dẫn để lặp qua trong một thư mục bằng PowerShell.

Làm cách nào để lặp qua các tệp trong một thư mục bằng PowerShell?

PowerShell có thể lặp qua các tệp trong thư mục bằng cách sử dụng “ Cho mỗi() ' vòng. Vòng lặp “Foreach()” được sử dụng để xử lý tất cả các mục cùng một lúc, chẳng hạn như đổi tên hoặc sao chép nhiều tệp. Trong khi ' Foreach-Object() ” cmdlet đề cập đến một mục tại một thời điểm trong một vòng lặp. Nó xử lý một mục tại một thời điểm.







Ví dụ 1: Lặp qua các tệp bằng “Foreach-Object” trong PowerShell Script

Trong ví dụ này, chúng tôi sẽ lặp qua các tệp trong một thư mục bằng PowerShell và in tên của các tệp có sẵn trong thư mục đó:



Get-ChildItem 'C:\Doc' |

Đối tượng Foreach {

$_ .Họ và tên

}

Theo mã trên:



  • Đầu tiên, thêm “ Get-ChildItem ” dọc theo đường dẫn thư mục để lấy các tệp có sẵn trong thư mục đó.
  • Sau đó, sử dụng “ | ” đường ống để chuyển đầu ra tới “ Foreach-Object() ” cmdlet để hoạt động với từng mục trong bộ sưu tập các đối tượng đầu vào.
  • thêm “ $_.Họ Tên ” cmdlet để hiển thị tên của các tệp được lấy từ thư mục:





Có thể quan sát thấy rằng các tệp trong thư mục đã được hiển thị trong bảng điều khiển PowerShell bằng cách sử dụng “ Foreach-Object() ' vòng.

Ví dụ 2: Lặp qua các tệp bằng cách sử dụng “Foreach-Object” với “-Recurse” trong PowerShell Script

Bây giờ, lặp qua các thư mục con bằng cách sử dụng “ -recurse ' tham số:



Có thể thấy rằng các tệp từ thư mục con cũng đã được hiển thị trong bảng điều khiển PowerShell.

Ví dụ 3: Lặp qua các tệp bằng “Foreach-Object” trong Bảng điều khiển PowerShell

Để thực hiện thao tác tương tự, trước hết, hãy xem các tệp có sẵn trước khi xóa tệp đã chọn trong thư mục tương ứng bằng cách sử dụng “ Get-ChildItem ” cmdlet dọc theo đường dẫn thư mục:

> Get-ChildItem 'C:\Doc'

Các tệp có sẵn trong thư mục đã được hiển thị trong bảng điều khiển PowerShell.

Bây giờ, hãy xóa các tệp bằng “ .txt ” tiện ích mở rộng bằng cách sử dụng “ Foreach-Object() ” vòng lặp trong PowerShell:

Get-ChildItem 'C:\Doc' * .ps1 |

Đối tượng Foreach {

Loại bỏ mục $_ .Họ và tên

}

Theo mã trên:

  • Đầu tiên, thêm “ Get-ChildItem ” cmdlet theo sau là đường dẫn thư mục và “ *.ps1 ” để chọn các tệp có phần mở rộng “ .ps1 ' sự mở rộng.
  • Sau đó, sử dụng “ | ” đường ống để chuyển đầu ra tới “ Foreach-Object() ' vòng.
  • Bên trong “ Foreach-Object() ” vòng lặp, thêm “ Loại bỏ mục ” lệnh ghép ngắn để xóa các tệp được truy xuất bởi “ $_.Họ Tên ' tài sản:

Bây giờ, hãy xác minh xem các tệp đã bị xóa hay chưa bằng cách lấy các tệp trong thư mục:

> Get-ChildItem 'C:\Doc'

Như bạn có thể thấy rằng các tệp có phần “ .txt ” đã bị xóa bằng vòng lặp trong PowerShell.

Phần kết luận

Để lặp qua các tệp trong một thư mục “ Foreach-Object() ” vòng lặp được sử dụng trong PowerShell. Nó xử lý và đề cập đến một mục tại một thời điểm từ một tập hợp các mục hoặc đối tượng. Hơn nữa, nó giúp xóa, đổi tên hoặc sao chép nhiều tệp. Bài viết này bao gồm một hướng dẫn đầy đủ để lặp qua các tệp trong một thư mục bằng PowerShell.