Board logo

标题: [文件操作] 批处理怎样复制指定时间段的文件? [打印本页]

作者: kitty3322    时间: 2014-9-7 15:39     标题: 批处理怎样复制指定时间段的文件?

如题,  我的电脑会自动生成我的文档备份(后缀名为.DOC)由于文件较多,提取指定时间的文件就比较麻烦,假如,我需要从C:\system\下复制2014年3月7日 15:37:36到2014年4月8日 15:37:52文件到我E:\system目录下就会很麻烦。。。。所以特求代码大神普渡众生
作者: apang    时间: 2014-9-8 00:03

  1. @echo off
  2. set "t1=20140307153736"
  3. set "t2=20140408153752"
  4. for %%a in ("c:\system\") do set"d=%%~da" & set "p=%%~pa"
  5. set w=wmic datafile where "drive='%d%' and path='%p:\=\\%' and extension='DOC'"
  6. for /f "tokens=1*" %%a in ('%w% get CreationDate^,name^|findstr /b [1-9]') do (
  7.         if "%%~na" gtr "%t1%" if "%%~na" lss "%t2%" (
  8.                 for /f "delims=" %%c in ("%%b") do (
  9.                         copy "%%~fc" "E:\abc\"
  10.                 )
  11.         )
  12. )
  13. pause
复制代码

作者: yu2n    时间: 2014-9-8 15:16

使用robocopy复制指定修改日期范围(2014年3月7日~2014年4月8日)的文件:
  1. robocopy  C:\system  E:\system  /s  *.doc  /MAXAGE:20140307 /MINAGE:20140408
复制代码
robocopy 为NT6系统自带,它的日期限定范围不支持时、分、秒。
XP用户可以下载这个命令行工具:
http://xiazai.zol.com.cn/detail/10/91484.shtml
作者: hnldwhm52    时间: 2014-9-19 20:18

xuexixiexie!!
作者: CrLf    时间: 2014-9-20 00:59

用 xcopy 的 /d 配合 /exclude 开关也可以实现
作者: ww0000    时间: 2023-4-3 15:23

回复 2# apang

老师,我测试了没成功
@echo off
set "t1=20230327153736"
set "t2=20230402120000"
for %%a in ("%~p0") do set"d=%%~da" & set "p=%%~pa"
set w=wmic datafile where "drive='%d%' and path='%p:\=\\%' and extension='doc'"

for /f "tokens=1*" %%a in ('%w% get CreationDate^,name^|findstr /b [1-9]') do (
        if "%%~na" gtr "%t1%" if "%%~na" lss "%t2%" (
                for /f "delims=" %%c in ("%%b") do (
                        copy "%%~fc" "%~p0\新文件夹\"
                )
        )
)
pause




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