[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

评分人数

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

TOP

试了好几次。。。不行的,请求帮助

TOP

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

TOP

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

回复 6# solemn123

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

TOP

以上功能已经实现,可否再加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
1

评分人数

TOP

  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!)
复制代码
可以达到你的要求,但不知道为什么,运行的时候会有错误

TOP

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

TOP

扣分了,还是谢谢大神。行了

TOP

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

TOP

返回列表