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ế.

