删除文件夹最近移动10天后移动到另一个目录

时间:2015-07-25 14:22:44

标签: powershell powershell-v2.0

我正在移动文件夹的目录,从不同的目录中移动文件夹(随时随机),这些文件夹需要在移动10天后删除。

那么,这会有效吗? -

$limit = (Get-Date).AddDays(-10)
$path = "C:\Some\Path"
Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force

我不知道的是,当我将它移动到新目录时,这个创建时间参数会更新???

1 个答案:

答案 0 :(得分:1)

根据评论中的要求,重命名文件夹的解决方案:

移动文件夹:

$sOldPath = "C:\oldpath\foldertomove" # Change to your actual path
$sNewPath = "C:\newpath" # Change to your actual new path
$sDate = Get-Date -Format "yyyMMdd"

$oFolderToMove = Get-Item -Path $sOldPath
Move-Item -Path $sOldPath -Destination $sNewPath
Rename-Item -Path (Join-Path -Path $sNewPath -ChildPath $oFolderToMove.Name) `
    -NewName ("{0}-{1}" -f $sDate, $oFolderToMove.Name)

生成的路径:C:\newpath\yyyyMMdd-foldertomove

删除旧文件夹:

$sNewPath = "C:\newpath" # Change to your actual new path
$sDateLimit = ((Get-Date).AddDays(-10)).ToString("yyyyMMdd")

# Assuming that all folders in $sNewPath have date-prefixed names.
Get-ChildItem -Path $sNewPath | 
    Where-Object { $_.PSIsContainer } |
    Foreach-Object {
        $sDate = [UInt32]($_.Name.Substring(0,8))
        if ($sDate -lt $sDateLimit) {
            # Deletes folder and everything in it. Remove -WhatIf switch to execute. 
            Remove-Item -Path $_.FullName -Recurse -Force -WhatIf 
        }
    }