PowerShell 根据文件夹名称中的日期删除目录

PowerShell 根据文件夹名称中的日期删除目录

我最近编写了一个 PowerShell 脚本,该脚本按以下格式创建按日期命名的目录“yyyyMMddHHmm”

我一直在尝试弄清楚如何返回并让脚本(或只是创建一个新脚本)自动删除超过三天的目录。我希望能够提取文件夹的名称(如以上述格式读取日期)并将其作为决定因素,但我不确定从哪里开始。我想了解步骤是什么以便我可以分解它会很有帮助。

有人曾经使用 PowerShell 尝试过类似的事情吗?

答案1

怎么样...

# 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
    }
}

您需要根据自己的喜好进行调整,并确定是否需要删除目录、删除内容或更多,但无论如何,这对于日期部分来说应该可以。

相关内容