多奇 IT 部落格

記錄著多奇數位在工作中對資訊技術的心得筆記

在管理Server上常遇到的問題就是空間不足的狀況,而在整理資料上如果做好計畫的話,

通常在Server之中就會有一堆不知道是誰或者何時建立的檔案,

最近有客戶希望可幫他們設定Windows Backup,

並且提出了希望可以定期的將這些備份檔案給移除的需求。

所以今天就來分享一個實用的PowerShell指令,

這個指令是透過查詢檔案的最後寫入日期來做依據,只要超出一定的時間就會將檔案移除或移動。

 

以下面這一個我在D磁碟區所建立的Temp資料夾為例,裡面有三個不同的檔案。

其中有一個Word文件是已經超過7天的文件,我希望超出7天的檔案可以被自動移除。

clip_image002

首先我們可以透過下列指令來檢查,這三個檔案的最後寫入日期

Get-ChildItem D:\Temp -Recurse

clip_image003

並透過下列指令將超過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檔案已經被移除。

clip_image005

參考資料

Using the Get-ChildItem Cmdlet

留言與評論


本篇文章的留言功能已關閉!