3

スクリプトはすべてのフォルダーとサブフォルダーを検索し、ファイル数が 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}*** 
    }
}
4

2 に答える 2