Board logo

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

作者: solemn123    时间: 2016-3-5 12:41     标题: 如何将文件按文件名中的日期移动到以该日期命名的文件夹里?

本帖最后由 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,其他文件以此类推。。。。
问题:如何让这些文件自动新建为年月日的文件夹名并转移进相同日期相应文件夹内
请大神帮忙,给个批处理,谢谢!!
作者: pcl_test    时间: 2016-3-5 15:31

本帖最后由 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
复制代码

作者: solemn123    时间: 2016-3-5 16:25

扣分了,还是谢谢大神。行了
作者: solemn123    时间: 2016-3-5 19:15

大神:问题又来了。。
:asfas20160304-1.xls,asfas20160304-2.xls,asfas20160304-3.xls          ,asfas20160305-1.xls,asfas20160305-2.xls,asfas20160305-3.xls,其他文件以此类推。。。。这些个文件名后面的-1,-2,-3。。。都变成_1000,_1500_,2000.现在又不能运行了,请解,谢谢!
作者: sishentibu    时间: 2016-3-6 12:57

  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!)
复制代码
可以达到你的要求,但不知道为什么,运行的时候会有错误
作者: solemn123    时间: 2016-10-27 12:19

以上功能已经实现,可否再加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
作者: pcl_test    时间: 2016-10-27 12:32

本帖最后由 pcl_test 于 2016-10-29 15:37 编辑

回复 6# solemn123

改两行
  1. md 2016年!n:~-2!月\!nm!\ 2>nul
  2. move *!nm!*.* 2016年!n:~-2!月\!nm!\
复制代码

作者: solemn123    时间: 2016-10-28 15:33

版主,功能实现差一点。就是新建的文件夹名格式不对,要求是“yyyy年mm月”的,不是YYYYMM,请帮忙修改下,谢谢!!比如:“20160912,20160913,20160914,20160915”。。。。的移入“2016年09月”
的文件夹名内
作者: solemn123    时间: 2016-10-29 15:19

试了好几次。。。不行的,请求帮助
作者: GNU    时间: 2016-10-31 11:11

回复 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
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2