Windows

PowerShell 根據文件夾名稱中的截止日期刪除目錄

  • September 16, 2011

我最近整理了一個 PowerShell 腳本,該腳本以以下格式**“yyyyMMddHHmm”創建按日期命名的目錄**

我一直在嘗試做的是弄清楚如何返回並讓腳本(或只是創建一個新腳本)自動刪除任何超過三天的目錄。我希望能夠提取文件夾的名稱(如以上述格式讀取日期)並將其作為決定因素,但我不確定我什至從哪裡開始。我想知道這些步驟是什麼以便我可以分解它會有所幫助。

以前有人用 PowerShell 嘗試過這樣的事情嗎?

怎麼樣…

# Find today's date and calculate 3 days ago:
$today = get-date -DisplayHint date
$threeDaysAgo = $today.AddDays(-3)

# Get the folder list
$folders = (gci "c:\somwhere\" | where-object {$_.PSIsContainer -eq $True})

foreach ($f in $folders) {

   # Parse the date from the folder name text and turn into a date object
   $folderdate = get-date -year $f.Name.substring(0,4) -month $f.Name.substring(4,2) -day $f.Name.substring(6,2)

   # compare and do stuff
   if ($folderdate -lt $threeDaysAgo) { 
       write-host $f.Name
       # do delete here if needed
   }
}

您需要根據口味進行調整,並確定是否需要刪除目錄、刪除內容或更多內容,但無論如何,這應該適用於日期部分。

引用自:https://serverfault.com/questions/311867