[PowerShell]自動刪除檔案(按照檔案修改日,保留近N天內的檔案)

刪除資料夾底下的檔案

前言

有時server 硬碟快滿了,MIS就會通知同事,然後就有人要手動刪除server上面的log檔,我覺得這不太合理,應該要自動化處理,於是就參考別人的PowerShell語法,寫了個腳本放到server上面,用排程自動刪檔,減少人工處理的動作。

語法

#定義天數,要刪除多久以前的檔案
#若是要刪除30天前的檔案,$Days就設定30
$Days = 50
#取今日時間
$Currentlytime = (Get-Date).AddDays(-$Days)
#定義主目錄
$TargetFolder = "C:\inetpub\logs\LogFiles\W3SVC2"
#透過Get-ChildItem抓該資料夾內的檔案列表
$Dirs = Get-Childitem -Path $TargetFolder -File
foreach ($item in $Dirs)
{
#判斷檔案最後修改時間
#由LastWriteTime抓取檔案最後修改時間
#利用AddDays對$Currentlytime做時間的運算
if($item.LastWriteTime -le $Currentlytime) #-le 小於或等於
{
Remove-Item $item.FullName | out-null
write-host "Finish Deleting Dir $item" -ForegroundColor "DarkRed"
}
}

待改項目

  • 天數、目錄參數化
  • 應該要有「刪除日期檔名」的功能

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store