找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28070|回复: 9

[文本处理] 如何将文件按文件名中的日期移动到以该日期命名的文件夹里?

[复制链接]
发表于 2016-3-5 12:41:43 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-3-5 15:18 编辑

每天会有OUTLOOK邮件附件自动保存到  d:\ad-spc; 附件是有规律的带日期的名称 , 如:asfas20160304-1.xls,asfas20160304-2.xls,asfas20160304-3.xls          ,asfas20160305-1.xls,asfas20160305-2.xls,asfas20160305-3.xls,其他文件以此类推。。。。
问题:如何让这些文件自动新建为年月日的文件夹名并转移进相同日期相应文件夹内
请大神帮忙,给个批处理,谢谢!!

评分

参与人数 1PB -2 收起 理由
pcl_test -2 未按版规发帖

查看全部评分

发表于 2016-3-5 15:31:02 | 显示全部楼层
本帖最后由 pcl_test 于 2016-3-5 15:33 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. cd /d "d:\ad-spc"
  3. for /l %%a in (1 1 12) do (
  4.     set n=00%%a
  5.     for /l %%b in (1 1 31) do (
  6.         set m=00%%b
  7.         set nm=2016!n:~-2!!m:~-2!
  8.         if exist *!nm!*.* (
  9.             md !nm!\ 2>nul
  10.             move *!nm!*.* !nm!\
  11.         )
  12.     )
  13. )
  14. pause
复制代码
 楼主| 发表于 2016-3-5 16:25:56 | 显示全部楼层
扣分了,还是谢谢大神。行了
 楼主| 发表于 2016-3-5 19:15:02 | 显示全部楼层
大神:问题又来了。。
:asfas20160304-1.xls,asfas20160304-2.xls,asfas20160304-3.xls          ,asfas20160305-1.xls,asfas20160305-2.xls,asfas20160305-3.xls,其他文件以此类推。。。。这些个文件名后面的-1,-2,-3。。。都变成_1000,_1500_,2000.现在又不能运行了,请解,谢谢!
发表于 2016-3-6 12:57:51 | 显示全部楼层
  1. @echo off
  2. cd /d D:\ad-spc
  3. setlocal enabledelayedexpansion
  4. for /f %%i in ('dir /b /a-d D:\ad-spc') do (
  5.         set a=%%i
  6.         set b=!a:~5,8!
  7. if not exist !b! md !b!
  8. move *!b!*.* !b!)
复制代码
可以达到你的要求,但不知道为什么,运行的时候会有错误
 楼主| 发表于 2016-10-27 12:19:20 | 显示全部楼层
以上功能已经实现,可否再加1条,把这些批处理的文件夹再自动按月份归入文件夹内(比如:9月份的文件夹都归入2016年09月),请问下面的代码如何添加。谢谢

@echo off&setlocal enabledelayedexpansion
cd /d "d:\ad-spc"
for /l %%a in (1 1 12) do (
    set n=00%%a
    for /l %%b in (1 1 31) do (
        set m=00%%b
        set nm=2016!n:~-2!!m:~-2!
        if exist *!nm!*.* (
            md !nm!\ 2>nul
            move *!nm!*.* !nm!\
        )
    )
)
pause

评分

参与人数 1PB -2 收起 理由
pcl_test -2 勿重复贴码

查看全部评分

发表于 2016-10-27 12:32:03 | 显示全部楼层
本帖最后由 pcl_test 于 2016-10-29 15:37 编辑

回复 6# solemn123

改两行
  1. md 2016年!n:~-2!月\!nm!\ 2>nul
  2. move *!nm!*.* 2016年!n:~-2!月\!nm!\
复制代码
 楼主| 发表于 2016-10-28 15:33:02 | 显示全部楼层
版主,功能实现差一点。就是新建的文件夹名格式不对,要求是“yyyy年mm月”的,不是YYYYMM,请帮忙修改下,谢谢!!比如:“20160912,20160913,20160914,20160915”。。。。的移入“2016年09月”
的文件夹名内
 楼主| 发表于 2016-10-29 15:19:42 | 显示全部楼层
试了好几次。。。不行的,请求帮助
发表于 2016-10-31 11:11:28 | 显示全部楼层
回复 8# solemn123
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "d:\ad-spc"
  4. for /l %%a in (1 1 12) do (
  5.     set n=00%%a
  6.     for /l %%b in (1 1 31) do (
  7.         set m=00%%b
  8.         set nm=2016!n:~-2!!m:~-2!
  9.         set folder=2016年!n:~-2!月
  10.         if exist *!nm!*.* (
  11.             md !folder!\ 2>nul
  12.             move *!nm!*.* !folder!\
  13.         )
  14.     )
  15. )
  16. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:30 , Processed in 0.017694 second(s), 16 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表