Πώς να διαγράψετε αρχεία που είναι παλαιότερα από X ημέρες στα Windows
Σας έχουμε ήδη δείξει πόσο ευέλικτο το κέλυφος του Linux μπορεί να είναι, αλλά αυτό δεν σημαίνει ότι τα Windows είναι πίσω. Εδώ είναι δύο τεχνικές που μπορείτε να χρησιμοποιήσετε ανάλογα με την προτίμησή σας shell, cmd ή PowerShell.
PowerShell 3
Get-ChildItem-Διαδρομή "C: \ Backups" -Αναδρομή | Τόπος δημιουργίας αντικειμένου -lt (Get-Date) .AddDays (-5) | Αφαίρεση-Αντικείμενο
PowerShell 2
Get-ChildItem-Διαδρομή "C: \ Backups" -Αναδρομή | Όπου-αντικείμενο $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Αφαίρεση-Αντικείμενο
Εξήγηση
- Πρώτα έχουμε αντικείμενα FileInfo και DirectoryInfo στο Cath \ Backups.
- Τα αντικείμενα FileInfo και DirectoryInfo περιέχουν και μια ιδιότητα CreationTime, έτσι μπορούμε να φιλτράρουμε τη συλλογή χρησιμοποιώντας αυτό.
- Ο χειριστής -lt (λιγότερο από) στη συνέχεια χρησιμοποιείται για να συγκρίνει την ιδιότητα CreationTime των αντικειμένων με την ημερομηνία λήψης (η τρέχουσα ημερομηνία) αφαιρώντας 5 ημέρες.
- Αυτό μας αφήνει στη συνέχεια μια συλλογή αντικειμένων που δημιουργήθηκαν περισσότερο από 5 ημέρες πριν, τα οποία περάσαμε στο Remove-Item.
Επαγγελματική συμβουλή
Για να δείτε τι θα αφαιρεθεί, μπορείτε να χρησιμοποιήσετε την παράμετρο -WhatIf:
Get-ChildItem-Διαδρομή "C: \ Backups" -Αναδρομή | Τόπος δημιουργίας αντικειμένου -lt (Get-Date) .AddDays (-5) | Κατάργηση-Αντικείμενο -Ότι
Γραμμή εντολών
Παρόλο που σας συνιστούμε να χρησιμοποιήσετε μία από τις μεθόδους PowerShell, χωρίς να μπείτε σε οποιαδήποτε από τις λεπτομέρειες, μπορείτε επίσης να το κάνετε από τη γραμμή εντολών.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"
Επαγγελματική συμβουλή
Για να δείτε ποια αρχεία πρόκειται να διαγραφούν, μπορείτε να χρησιμοποιήσετε την echo.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @file"