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

求PowerShell脚本:按文件名日期创建层级文件夹并移动文件

PowerShell脚本:按文件名首8位日期批量归档文件

下面是实现需求的PowerShell脚本,支持批量处理指定主文件夹内的文件,自动按日期层级归档:

# 替换为你的目标主文件夹路径
$targetFolder = "C:\Your\Main\Folder\Path"

# 遍历主文件夹下的所有文件(不含子文件夹)
Get-ChildItem -Path $targetFolder -File | ForEach-Object {
    # 提取文件名前8位字符
    $datePrefix = $_.Name.Substring(0, 8)
    
    # 验证是否为有效的8位日期格式(YYYYMMDD)
    if ($datePrefix -match '^\d{8}$' -and [DateTime]::TryParseExact($datePrefix, 'yyyyMMdd', $null, [System.Globalization.DateTimeStyles]::None, [ref]$null)) {
        # 拆分年、月、日
        $year = $datePrefix.Substring(0, 4)
        $month = $datePrefix.Substring(4, 2)
        $day = $datePrefix.Substring(6, 2)
        
        # 构建目标文件夹路径
        $destinationPath = Join-Path -Path $targetFolder -ChildPath "$year\$month\$day"
        
        # 创建文件夹(已存在则跳过)
        if (-not (Test-Path -Path $destinationPath)) {
            New-Item -Path $destinationPath -ItemType Directory | Out-Null
        }
        
        # 移动文件到目标文件夹,-Force参数可覆盖重名文件
        Move-Item -Path $_.FullName -Destination $destinationPath -Force
        Write-Host "已归档: $($_.Name) → $destinationPath"
    } else {
        Write-Warning "跳过不符合日期格式的文件: $($_.Name)"
    }
}

关键说明

  • 路径配置:将$targetFolder的值替换为你实际要处理的主文件夹路径
  • 格式校验:脚本会自动过滤掉文件名前8位不是有效YYYYMMDD格式的文件,避免无效操作
  • 文件夹处理:仅当目标层级文件夹不存在时才创建,已存在则直接使用
  • 文件移动:-Force参数允许覆盖目标文件夹中同名文件,若需保留原文件可移除该参数
  • 过程反馈:处理时会输出成功归档的文件路径,不符合要求的文件会给出警告提示

使用步骤

  1. 打开PowerShell终端
  2. 将脚本保存为.ps1格式文件(例如ArchiveByDate.ps1)
  3. 修改脚本中的$targetFolder为你的目标文件夹路径
  4. 执行脚本:.\ArchiveByDate.ps1

内容的提问来源于stack exchange,提问作者astrall.knight

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:02:39