Journal Powershell fichiers supprimés
Le script de recherche dans tous les dossiers et sous-dossiers et supprimer le fichier le plus ancien lorsque le nombre de fichiers>5. Tout fonctionne bien, mais je veux aussi le journal de tous les supprimer des Fichiers comme un enregistrement dans un fichier journal.
Comment puis-je connecter les fichiers supprimés ?
Ici le Script.
$path = "C:\test"
$keep = 3
$strLogFileName = "c:\test\yourlogfile.log";
$dirs = Get-ChildItem -Path $path -Recurse | Where-Object {$_.PsIsContainer}
foreach ($dir in $dirs) {
$files = Get-ChildItem -Path $dir.FullName | Where-Object { -not $_.PsIsContainer -and $_.name -like "*.zip"}
if ($files.Count -gt $keep) {
$files | Sort-Object CreationTime -desc| Select-Object -First ($files.Count - $keep) | Remove-Item -Force
***{write-host “Deleting File $File” -foregroundcolor “Red”; Remove-Item $File | out-null}***
}
}
Vous devez vous connecter pour publier un commentaire.
Vous avez un bon début ici:
Malheureusement
Remove-Item
n'ont pas de sortie que vous pouvez traîner, mais vous avez déjà fait votre propre message de sortie de sorte que nous pouvons construire à partir de cela. Vous pouvez rediriger une sortie vers un fichier à l'aide deOut-File
. L'ajout drapeau de fixer le nouveau contenu à la fin du fichier, et vous n'avez pas à vérifier si le fichier existe.Vous n'avez même pas à inclure de Sortie, si vous voulez une ligne plus courte.
Voici un exemple qui montre où vous devez ajouter du code. J'ai marqué code existant par "...", et j'ai déplacé la suppression du message dans une variable de sorte que vous pouvez réutiliser à un autre emplacement. Cela suppose que vous avez stocké le nom du fichier sélectionné dans une variable.
D'abord, vous aurez besoin d'un
log-message
type de fonction dans un script qui va enregistrer le message à un .le fichier de log. Puis chekc si le fichier existe et si pas, puis créer un fichier.Puis juste avant de supprimer votre fichier avec
Remove-Item
de commande vous pouvez utiliserLog-Message
fonction de message de log dans le fichier journal.Script complet