スクリプトはすべてのフォルダーとサブフォルダーを検索し、ファイル数が 5 を超えると最も古いファイルを削除します。すべて正常に動作しますが、すべての削除ファイルをログ ファイルのレコードとして記録したいと考えています。
削除されたファイルをログに記録するにはどうすればよいですか?
ここでスクリプト。
$path = "C:\test\1"
$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}***
}
}