有一个目录,我正在从一个不同的目录移动文件夹,没有任何逻辑(随机随时),这些文件夹需要在移动到这里10天后删除。
那么,这行得通吗?-
$limit = (Get-Date).AddDays(-10)
$path = "C:SomePath"
Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force
我不知道的是,这个创建时间参数将被更新,当我移动到新的目录?
根据注释中的要求,重命名文件夹的解决方案:
移动文件夹:
$sOldPath = "C:oldpathfoldertomove" # 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:newpathyyyyMMdd-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
}
}