Cách xóa tệp cũ hơn X ngày trên Windows
Chúng tôi đã cho bạn thấy lớp vỏ Linux có thể linh hoạt như thế nào, nhưng điều đó không có nghĩa là Windows còn ở phía sau. Đây là hai kỹ thuật bạn có thể sử dụng tùy thuộc vào sở thích shell, cmd hoặc PowerShell của bạn.
PowerShell 3
Get-ChildItem -Path dục C: \ Sao lưu -Recurse | Thời gian tạo đối tượng ở đâu -lt (Nhận ngày) .AddDays (-5) | Loại bỏ mục
PowerShell 2
Get-ChildItem -Path dục C: \ Sao lưu -Recurse | Trường hợp-Đối tượng $ _. CreationTime -lt (Ngày nhận) .AddDays (-5) | Loại bỏ mục
Giải trình
- Đầu tiên chúng ta nhận được các đối tượng FileInfo và DirectoryInfo trong Đường dẫn C: \ Backup.
- Cả hai đối tượng FileInfo và DirectoryInfo đều chứa thuộc tính CreationTime, vì vậy chúng ta có thể lọc bộ sưu tập bằng cách sử dụng.
- Toán tử -lt (ít hơn) sau đó được sử dụng để so sánh thuộc tính CreationTime của các đối tượng với Ngày nhận (ngày hiện tại) trừ đi 5 ngày.
- Điều này sau đó để lại cho chúng tôi một bộ sưu tập các đối tượng đã được tạo ra hơn 5 ngày trước, mà chúng tôi chuyển đến Remove-Item.
Mẹo chuyên nghiệp
Để xem những gì sẽ được loại bỏ, bạn có thể sử dụng tham số -What If:
Get-ChildItem -Path dục C: \ Sao lưu -Recurse | Thời gian tạo đối tượng ở đâu -lt (Nhận ngày) .AddDays (-5) | Xóa-Mục -What If
Dấu nhắc lệnh
Mặc dù chúng tôi khuyên bạn nên sử dụng một trong các phương thức PowerShell, nhưng không đi sâu vào bất kỳ chi tiết nào, bạn cũng có thể thực hiện điều đó từ dấu nhắc lệnh.
forfiles -p "C: \ Sao lưu" -s -m *. * -d -5 -c "cmd / c del @path"
Mẹo chuyên nghiệp
Để xem những tập tin nào sẽ bị xóa, bạn có thể sử dụng echo.
forfiles -p "C: \ Sao lưu" -s -m *. * -d -5 -c "cmd / c echo @file"