You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell实现多文件夹旧文件归档至子目录Archive,需添加目标变量

嘿,刚上手PowerShell完全不用慌!我帮你整理了一个通用、易维护的脚本,完美匹配你的需求——把C:\source下各个子文件夹里的旧文件,精准移动到对应子文件夹自己的Archive目录里。

优化后的PowerShell脚本
# 定义脚本参数,方便灵活调整(不用改脚本内部就能改规则)
param(
    [string]$SourceRoot = "C:\source",
    [int]$RetentionDays = 30  # 保留最近N天的文件,超过的自动归档
)

# 获取源根目录下的所有子文件夹(自动排除Archive目录,避免重复处理已归档文件)
$subFolders = Get-ChildItem -Path $SourceRoot -Directory | Where-Object { $_.Name -ne "Archive" }

foreach ($folder in $subFolders) {
    # 构建当前子文件夹对应的专属Archive路径
    $archivePath = Join-Path -Path $folder.FullName -ChildPath "Archive"
    
    # 兜底检查:如果Archive目录意外不存在,自动创建(避免报错)
    if (-not (Test-Path -Path $archivePath)) {
        New-Item -Path $archivePath -ItemType Directory | Out-Null
    }

    # 计算文件归档的截止日期:当前日期往前推指定天数
    $cutoffDate = (Get-Date).AddDays(-$RetentionDays)

    # 筛选当前子文件夹中,修改时间早于截止日期的所有文件(如需包含子目录文件,加 -Recurse 参数)
    $oldFiles = Get-ChildItem -Path $folder.FullName -File | Where-Object { $_.LastWriteTime -lt $cutoffDate }

    if ($oldFiles.Count -gt 0) {
        Write-Host "正在移动 $($oldFiles.Count) 个旧文件到 $archivePath..."
        # 移动文件,-Force 参数会覆盖Archive中同名文件(如需手动确认,去掉-Force加-Confirm)
        $oldFiles | Move-Item -Destination $archivePath -Force
        Write-Host "✅ $($folder.Name) 归档完成!"
    } else {
        Write-Host "ℹ️ $($folder.Name) 中没有需要归档的旧文件。"
    }
}

Write-Host "🎉 所有文件夹处理完毕!"
脚本关键细节说明
  • 参数化设计:开头的param块让你不用修改脚本内部代码,直接在运行时调整规则。比如想处理D:\ProjectDocs目录、保留最近60天的文件,只需运行:.\Move-OldFiles.ps1 -SourceRoot "D:\ProjectDocs" -RetentionDays 60
  • 避免重复归档:自动排除根目录下的Archive文件夹,不会把已经归档的文件再处理一遍
  • 健壮性兜底:自动检查对应子文件夹的Archive目录是否存在,避免因目录缺失报错
  • 灵活筛选:默认只处理子文件夹下的直接文件,如果需要连同子目录里的文件一起归档,给Get-ChildItem加上-Recurse参数即可
使用小技巧
  • 第一次运行前,建议把Move-Item换成Copy-Item先做测试,确保筛选出的文件是你想要归档的,避免误操作
  • 如果需要保留文件的原始子目录结构(比如源文件夹里有SubDir1,要把SubDir1整个移到Archive里),可以修改Get-ChildItem的筛选条件为-Directory,或者调整移动逻辑保留相对路径
  • 如果你有已有的待优化脚本,可以贴出来,我帮你针对性调整(比如硬编码路径、筛选逻辑有问题这类常见优化点)

内容的提问来源于stack exchange,提问作者A. Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:23:59