Σας έχουμε ήδη δείξει πόσο ευέλικτο μπορεί να είναι το κέλυφος Linux , αλλά αυτό δεν σημαίνει ότι τα Windows είναι πολύ πιο πίσω. Ακολουθούν δύο τεχνικές που μπορείτε να χρησιμοποιήσετε ανάλογα με την προτίμηση του κελύφους σας, cmd ή PowerShell.
PowerShell 3
Get-ChildItem –Path “C: \ Backups” –Ανάκτηση | Where-Object CreationTime –lt (Get-Date) .AddDays (-5) | Κατάργηση-στοιχείου
PowerShell 2
Get-ChildItem –Path “C: \ Backups” –Ανάκτηση | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Κατάργηση-στοιχείου
Εξήγηση
- Αρχικά λαμβάνουμε αντικείμενα FileInfo και DirectoryInfo στη διαδρομή C: \ Backups.
- Τα αντικείμενα FileInfo και DirectoryInfo περιέχουν μια ιδιότητα CreationTime, ώστε να μπορούμε να φιλτράρουμε τη συλλογή χρησιμοποιώντας αυτήν.
- Ο τελεστής –lt (λιγότερο από) χρησιμοποιείται στη συνέχεια για τη σύγκριση της ιδιότητας CreationTime των αντικειμένων με την αφαίρεση της ημερομηνίας Get-Date (η τρέχουσα ημερομηνία) 5 ημερών.
- Αυτό μας αφήνει στη συνέχεια με μια συλλογή αντικειμένων που δημιουργήθηκαν πριν από περισσότερες από 5 ημέρες, τα οποία περνάμε στο Remove-Item.
Επαγγελματική συμβουλή
Για να δείτε τι θα αφαιρεθεί μπορείτε να χρησιμοποιήσετε την παράμετρο –WhatIf:
Get-ChildItem –Path “C: \ Backups” –Ανάκτηση | Where-Object CreationTime –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"