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

按日期范围移动文件夹并保留安全设置

实现旧文件夹迁移(保留安全参数)

完全可以实现你的需求,核心思路是先筛选出符合修改日期条件的根文件夹,再用robocopy批量迁移并保留安全属性,具体方案如下:

方案一:PowerShell脚本(推荐,灵活性高)

  1. 筛选目标文件夹
    先定位源目录,筛选出修改日期早于2021年1月1日的根文件夹:

    $sourceRoot = "D:\你的源根目录"
    $cutoffDate = Get-Date "2021-01-01"
    $targetFolders = Get-ChildItem -Path $sourceRoot -Directory | Where-Object { $_.LastWriteTime -lt $cutoffDate }
    
  2. 批量迁移并保留安全参数
    遍历筛选出的文件夹,用robocopy执行移动操作,确保安全权限等属性完整保留:

    $archiveRoot = "\\目标服务器IP\归档共享文件夹"
    foreach ($folder in $targetFolders) {
        # robocopy核心命令
        robocopy $folder.FullName "$archiveRoot\$($folder.Name)" /MOVE /E /COPYALL /R:0 /W:0
        # 验证迁移结果
        if (-not (Test-Path $folder.FullName)) {
            Write-Host "✅ 成功迁移: $($folder.Name)"
        } else {
            Write-Warning "❌ 迁移失败: $($folder.Name)"
        }
    }
    

关键参数说明

  • /MOVE:移动文件和文件夹,完成后自动删除源端内容
  • /E:复制所有子文件夹(包括空文件夹)
  • /COPYALL:复制所有文件属性,涵盖安全权限、所有者、审核记录等,满足保留安全参数的要求
  • /R:0 /W:0:避免因文件占用等问题卡住,可根据实际情况调整重试次数和等待时间

方案二:CMD命令行(适合快速执行)

如果习惯用CMD,可通过forfiles筛选文件夹,再调用robocopy:

set "source=D:\你的源根目录"
set "dest=\\目标服务器IP\归档共享文件夹"
set "cutoffDate=20210101"

for /f "delims=" %%d in ('dir /ad /b "%source%" ^| forfiles /p "%source%" /m "*" /d -%cutoffDate% /c "cmd /c echo @path"') do (
    robocopy "%%d" "%dest%\%%~nxd" /MOVE /E /COPYALL /R:0 /W:0
)

注意事项

  • 执行前建议先测试:将/MOVE替换为/COPY,验证筛选的文件夹是否正确,迁移后的权限是否完整保留
  • 确保操作账号拥有源文件夹的完全控制权限,以及目标共享文件夹的写入权限
  • 重要数据请先备份,避免意外丢失

内容的提问来源于stack exchange,提问作者Rick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 22:25:41