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

[文件操作] 批处理XCOPY如何拷贝指定日期之前的文件?

DOS的XCOPY命令是我很喜欢的一个命令。它的参数D可以用来进行增量备份,将源文件夹内的资料备份到目标盘。达到增量备份要用到的参数有如下说明:
/D:m-d-y    复制在指定日期或指定日期以后改变的文件。
                   如果没有提供日期,只复制那些源时间比目标时间新的文件和目标文件夹不存在的文件。
但是,可但是,想要XCOPY指定日期之前的文件,要怎么做呢? 用for吗?
假如我想XCOPY "D:\1111" "E:\8888" /d:1-1-2005  。 只拷此日期以前的文件,也就是拷2005年以前的文件。该怎么做呢?

本帖最后由 zm900612 于 2011-5-28 12:27 编辑

发重了...请忽略此楼

TOP

  1. @echo off
  2. xcopy /ls /d:1-1-2005 "D:\1111" "E:\8888" /d:1-1-2005 >tmp1
  3. dir /s /a-d /b>tmp2
  4. for /f "delims=" %%a in ('findstr /l /g:tmp1 tmp2') do (
  5.    set "tmp=%%a"
  6.    setlocal enabledelayedexpansion
  7.    copy /y "%%a" "!tmp:~7!"
  8.    endlocal
  9. )
复制代码

TOP

3# zm900612


万分的感谢!!!

TOP

回复 3# CrLf


   大神,我运行代码后,发现DOS提示: 无效参数 - /d:01-01-2021


现有代码复制的你的,按我需要改了点东西,如下:
@echo off

echo -----------

echo 处理中

echo -----------

xcopy /ls /d:01-01-2021 "E:\一键数据副本" "C:\Users\Administrator\Desktop\个评" /d:01-01-2021 >tmp1
dir /s /a-d /b>tmp2
for /f "delims=" %%a in ('findstr /l /g:tmp1 tmp2') do (
   set "tmp=%%a"
   setlocal enabledelayedexpansion
   copy /y "%%a" "!tmp:~7!"
   endlocal
)


echo 请按任意键结束 & pause > nul


帮忙再看一下哪里有什么问题,

TOP

回复 1# bmwtt123
  1. robocopy "D:\1111" "E:\8888" /e /copyall /minage:20150101
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表