Board logo

标题: [文件操作] 批处理只拷贝7天内的文件试了不行 [打印本页]

作者: ww0000    时间: 2013-9-13 12:38     标题: 批处理只拷贝7天内的文件试了不行

以下代码是网上找的,拷贝7天内创建的文件,可我试了,7天以前的文件也会拷贝,为什么?
  1. @echo off
  2. rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内创建的或是7天内修改过的
  3. rem author:perfectaction
  4. set "src=d:\11\" rem 源目录路径
  5. set "des=d:\22\" rem 目标路径
  6. set "suffix=*"   rem 需要xcopy的文件后缀
  7. set "dd=7"         rem 只copy7天之内的文件
  8. del /f /q /a "%src%notcopylist_%suffix%.log" 2>nul
  9. forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b /s >>%src%notcopylist_%suffix%.log"
  10. if not exist "%src%notcopylist_%suffix%.log\" (
  11.   if exist "%src%notcopylist_%suffix%.log" (
  12.     xcopy "%src%*.%suffix%" "%des%" /s /d /y /EXCLUDE:%src%notcopylist_%suffix%.log
  13.   ) else (
  14.     xcopy "%src%*.%suffix%" "%des%" /s /d /y
  15.   )
  16. ) else (
  17.   echo 错误:无法创建%src%notcopylist_%suffix%.log文件,当前目录存在同名文件夹。
  18. )
  19. rem pause
复制代码

作者: apang    时间: 2013-9-13 15:46

forfiles和xcopy计算的是文件修改日期,不是创建日期
另外,forfiles并非系统自带,需要下载才行
作者: DAIC    时间: 2013-9-13 16:21

回复 2# apang


    楼主好像是用的Win7
作者: ww0000    时间: 2013-9-13 16:31

回复 2# apang


   我下载了 forFiles.exe,放在C:\WINDOWS\system32目录下,但执行上面代码还是全部拷贝了!不能排除7天前的文件!
作者: apang    时间: 2013-9-13 16:39

  1. @echo off
  2. %1mshta vbscript:createobject("wscript.shell").run("""%~0"" : "^&month(date-7)^&"-"^&day(date-7)^&"-"^&year(date-7))(close)&exit /b
  3. set "src=d:\11"
  4. set "des=d:\22"
  5. set "suffix=*"
  6. xcopy /shcy /d:%2 "%src%\*.%suffix%" "%des%\"
  7. pause
复制代码
试试
作者: ww0000    时间: 2013-9-13 16:44

回复 5# apang


    谢谢,能用!
   要是能考虑多级目录和文件夹就更好了!




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