批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[文件操作] 批处理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

返回列表