Tìm kiếm trang web

PowerShell: Giữ X số tệp và xóa phần còn lại


Bạn có thể sử dụng cú pháp sau trong PowerShell để giữ X số tệp trong một thư mục cụ thể và xóa phần còn lại:

Get-ChildItem -Recurse -File |
  Sort CreationTime -desc |
  Select -skip 5 |
  Remove-Item -Force

Ví dụ cụ thể này sẽ giữ 5 tệp được tạo gần đây nhất trong thư mục hiện tại và xóa tất cả các tệp khác.

Đây là những gì các lệnh khác nhau làm:

  • Get-ChildItem -Recurse -File: Truy xuất đệ quy tất cả các tệp trong thư mục hiện tại và các thư mục con
  • Sắp xếp CreationTime -desc: Sắp xếp tệp từ mới nhất đến cũ nhất dựa trên ngày tạo
  • Chọn -skip 5: Chọn tất cả các tệp ngoại trừ 5 tệp đầu tiên
  • Remove-Item -Force: Xóa các tệp đã chọn, sử dụng -Force để bao gồm các tệp chỉ đọc và ẩn

Ví dụ sau đây cho thấy cách sử dụng cú pháp này trong thực tế.

Ví dụ: Cách giữ X số tệp và xóa phần còn lại trong PowerShell

Giả sử thư mục hiện tại của chúng ta có đường dẫn sau:

C:\Users\bobbi\data6

Chúng ta có thể gõ Get-ChildItem -Recurse -File để liệt kê tất cả các tệp trong thư mục hiện tại này:

Chúng ta có thể thấy rằng có tổng số 7 tệp trong thư mục hiện tại này.

Giả sử chúng tôi chỉ muốn giữ 5 tệp được tạo gần đây nhất và xóa phần còn lại.

Chúng ta có thể sử dụng cú pháp sau để làm như vậy:

Get-ChildItem -Recurse -File |
  Sort CreationTime -desc |
  Select -skip 5 |
  Remove-Item -Force

Ảnh chụp màn hình sau đây cho thấy cách sử dụng cú pháp này trong thực tế:

Lưu ý rằng khi chúng ta sử dụng lại lệnh ghép ngắn Get-ChildItem để xem tất cả các tệp trong thư mục hiện tại thì chỉ còn lại 5 tệp được tạo gần đây nhất.

Tất cả các tập tin khác đã bị xóa.

Lưu ý: Vui lòng thay đổi giá trị 5 sau lệnh -skip để giữ số lượng tệp khác thay thế.

Bài viết liên quan