ログなどをファイルで出している場合、ひたすらたまり続けると困ります。 定期的に削除するときはこんな感じ。

$dir配下のサブディレクトリ内も含めた全てのファイルで、$daysで定めた日数以上古いファイルを削除します。 削除した結果空になったディレクトリも削除。

$dir = '削除対象のディレクトリパス'
$days = -10 # 保存期間をマイナスで。

# 10日以上経過したファイルを削除
Get-Childitem -path $dir  -Recurse | 
 Where { !$_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays($days) } |
  Remove-Item
# 空(になった)ディレクトリを削除
Get-Childitem -path $dir  -Recurse | 
 where { $_.PSIsContainer -and !$_.GetFiles().Count -and !$_.GetDirectories().Count} |
  Remove-Item
  • 「空(になった)ディレクトリを削除」をすることで空(になった)ディレクトリができてしまう場合があります。そのようなディレクトリはもう少し工夫しないと残されてしまいますね。 -- zzz (2016-08-18 21:04:21)
  • タスクなどで定期実行すれば、次の実行時に消えるからいいかなーと思ってました。 -- sabakanse (2016-08-23 16:10:37)
    名前:
    コメント:

タグ:

PowerShell
最終更新:2016年08月23日 16:10