by Eddie
9. December 2014 10:33
在管理Server上常遇到的問題就是空間不足的狀況,而在整理資料上如果做好計畫的話,
通常在Server之中就會有一堆不知道是誰或者何時建立的檔案,
最近有客戶希望可幫他們設定Windows Backup,
並且提出了希望可以定期的將這些備份檔案給移除的需求。
所以今天就來分享一個實用的PowerShell指令,
這個指令是透過查詢檔案的最後寫入日期來做依據,只要超出一定的時間就會將檔案移除或移動。
以下面這一個我在D磁碟區所建立的Temp資料夾為例,裡面有三個不同的檔案。
其中有一個Word文件是已經超過7天的文件,我希望超出7天的檔案可以被自動移除。
首先我們可以透過下列指令來檢查,這三個檔案的最後寫入日期
Get-ChildItem D:\Temp -Recurse
並透過下列指令將超過7天的檔案來進行移除的動作
$Today = Get-Date
$Days = “-7”
$TargetFolder = “D:\Temp”
$LastWrite = $Today.AddDays($Days)
Get-ChildItem $TargetFolder -Recurse | Where {!$_.PSIsContainer}| where {$_.LastWriteTime -le "$LastWrite"} | Remove-Item
之後在回到D:\Temp的資料夾中,就可以看到原本那一個超過7天的Word檔案已經被移除。
參考資料
Using the Get-ChildItem Cmdlet