找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 38984|回复: 5

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

[复制链接]
发表于 2011-5-28 11:33:51 | 显示全部楼层 |阅读模式
DOS的XCOPY命令是我很喜欢的一个命令。它的参数D可以用来进行增量备份,将源文件夹内的资料备份到目标盘。达到增量备份要用到的参数有如下说明:
/D:m-d-y    复制在指定日期或指定日期以后改变的文件。
                   如果没有提供日期,只复制那些源时间比目标时间新的文件和目标文件夹不存在的文件。
但是,可但是,想要XCOPY指定日期之前的文件,要怎么做呢? 用for吗?
假如我想XCOPY "D:\1111" "E:\8888" /d:1-1-2005  。 只拷此日期以前的文件,也就是拷2005年以前的文件。该怎么做呢?
发表于 2011-5-28 12:09:58 | 显示全部楼层
本帖最后由 zm900612 于 2011-5-28 12:27 编辑

发重了...请忽略此楼
发表于 2011-5-28 12:10:00 | 显示全部楼层
  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. )
复制代码
 楼主| 发表于 2011-5-28 12:22:48 | 显示全部楼层
3# zm900612


万分的感谢!!!
发表于 2021-4-8 11:02:38 | 显示全部楼层
回复 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


帮忙再看一下哪里有什么问题,
发表于 2021-11-21 17:42:02 | 显示全部楼层
回复 1# bmwtt123
  1. robocopy "D:\1111" "E:\8888" /e /copyall /minage:20150101
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 15:09 , Processed in 0.017839 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表