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

[文件操作] 批处理怎样根据文件的创建日期和天数移动到指定文件夹?

比如 把创建日期和当前日期大于30天的文件,根据文件的创建日期,移动到指定的文件夹下
文件名          创建日期
LSJW26H001     2010-04-01
LSJW26H002     2010-04-01
LSJW26H003     2010-05-02
LSJW26H004     2010-05-02
LSJW26H005     2010-06-01
LSJW26H007     2010-07-11

自动生成文件夹 201004 包含文件  LSJW26H001     LSJW26H002   
自动生成文件夹 201005包含文件  LSJW26H003     LSJW26H004     
自动生成文件夹 201006 包含文件 LSJW26H005     
LSJW26H007 不用转移

我不懂代码,请各位直接给出代码 谢谢

TOP

有没有兴趣学学基础,争取看懂代码呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

第三方命令行工具forfiles可以很好的完成这个任务,基础的还是要学下的。

TOP

兄弟们,不如自己给个代码吧,因为这个东东平时用的很少,没有去关注过,谢谢各位了,周五就要用的

TOP

有没有兄弟给段代码啊,或者给个提示 给个方向

TOP

给出文件后缀,这样方便写代码
---学无止境---

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /a-d-h /b') do (
  3. set folder=%%~ti
  4. set folder=!folder:~0,4!!folder:~5,2!
  5. if not "!folder!"=="201007" md !folder! 2>nul
  6. move "%%i" !folder!
  7. )
  8. pause
复制代码
---学无止境---

TOP

文件后缀是 jpg文件 谢谢

TOP

Broly兄
     你的方法基本正确的,能详细解释一下每一行的参数作用吗?正好学习学习,一旦日后更改,也好自己动手做

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. rem 将每一个文件按顺序赋值给%%i
  3. for /f "delims=" %%i in ('dir /a-d-h /b') do (
  4. rem 将文件的日期赋值给变量folder,格式为2010-04-01
  5. set folder=%%~ti
  6. rem 截取,将格式变为如201004
  7. set folder=!folder:~0,4!!folder:~5,2!
  8. rem 如果名字不为201007,就按这个名字建立文件夹
  9. if not "!folder!"=="201007" md !folder! 2>nul
  10. rem 移动文件到建立的那个文件夹
  11. move "%%i" !folder!
  12. )
  13. pause
复制代码
---学无止境---

TOP

如果知道具体的数据情况,可以写一个更好的
---学无止境---

TOP

谢谢,问题解决

TOP

请教Broly具体细节

若是我的原文件在C:\jjye下,而目标文件夹是w:\jjye,代码应该怎样写,多谢。

TOP

说明:
set "l0=C:\jjye"    源路径
set "l1=w:\jjye"    目标路径
call,30              这里的30指30天前
  1. @echo off&setlocal enabledelayedexpansion
  2. set "l0=C:\jjye"
  3. set "l1=w:\jjye"
  4. call:D,30
  5. for /f "delims=" %%a in ('dir /a:-d/b "%l0%"') do (
  6.     set t=%%~ta
  7.     set t=!t:-=!
  8.     if not "!t:~0,8!" lss "%D%" (
  9.         if not exist "%l1%\!t:~,06!\" md "%l1%\!t:~,06!"
  10.         move "%%a" %l1%\!t:~,06!
  11. ))
  12. exit
  13. :D
  14. for /f "tokens=1-3 delims=-:/ " %%a in ("%date%") do set Y=%%a&set M=%%b&set D=%%c
  15. if "%M:~0,1%"=="0" set M=%M:~1%
  16. if "%D:~0,1%"=="0" set D=%D:~1%
  17. set/a D-=%1
  18. if %D% gtr 0 goto:Y
  19. :M
  20. set/a M-=1
  21. if !M!==0 set/a Y-=1,M=12
  22. set/a "T=^!(M-2)","R=(^!(Y%%4)&^!^!(Y%%100))|^!(Y%%400)","C=^!(M-4)|^!(M-6)|^!(M-9)|^!(M-11)","D=T*(28+R)+C*30+(^!T&^!C)*31+D"
  23. if %D% leq 0 goto:M
  24. :Y
  25. set M=0%M%&set D=0%D%&set D=%Y%!M:~-2!!D:~-2!
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表