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

如何遍历文件夹名称并根据名称内的日期移动对应文件夹

批处理脚本实现按日期文件夹名移动目录

以下是可直接使用的批处理脚本,适配你提出的目录移动需求:

@echo off
setlocal enabledelayedexpansion

:: 此处修改为你实际的源根目录、目标根目录
set "source_root=K:\PLPR1"
set "target_root=L:\PLPR1"

:: 配置数字月份到英文月份的映射
set "month_01=January"
set "month_02=February"
set "month_03=March"
set "month_04=April"
set "month_05=May"
set "month_06=June"
set "month_07=July"
set "month_08=August"
set "month_09=September"
set "month_10=October"
set "month_11=November"
set "month_12=December"

:: 遍历源根目录下所有8位名称的文件夹
for /d %%d in ("%source_root%\????????") do (
    set "folder_name=%%~nd"
    :: 过滤非8位纯数字命名的文件夹(即不符合YYYYMMDD格式的目录不处理)
    echo "!folder_name!"|findstr /r "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$" >nul || continue
    
    :: 拆分日期字段
    set "year=!folder_name:~0,4!"
    set "month_num=!folder_name:~4,2!"
    set "day=!folder_name:~6,2!"
    
    :: 读取对应月份英文名称
    set "month_name=!month_!month_num!!"
    
    :: 拼接目标路径
    set "target_path=%target_root%\!year!\FTP Data\!month_name!\!day! !month_name!"
    
    :: 自动创建不存在的上级目录
    if not exist "!target_path!\.." md "!target_path!\.."
    :: 执行移动操作
    move "%%d" "!target_path!"
)

echo 操作完成
pause

使用注意事项

  • 正式执行前建议先把脚本里的move命令替换为echo move,试运行确认输出的移动路径符合预期后,再改回move执行实际移动,避免误操作
  • 你给出的示例中20210830目录被放到了September文件夹下属于明显笔误,脚本默认按月份数字匹配对应月份目录,如有特殊规则可自行调整路径拼接逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:30:04