标题: [文件操作] 批处理XCOPY如何拷贝指定日期之前的文件? [打印本页]
作者: bmwtt123 时间: 2011-5-28 11:33 标题: 批处理XCOPY如何拷贝指定日期之前的文件?
DOS的XCOPY命令是我很喜欢的一个命令。它的参数D可以用来进行增量备份,将源文件夹内的资料备份到目标盘。达到增量备份要用到的参数有如下说明:
/D:m-d-y 复制在指定日期或指定日期以后改变的文件。
如果没有提供日期,只复制那些源时间比目标时间新的文件和目标文件夹不存在的文件。
但是,可但是,想要XCOPY指定日期之前的文件,要怎么做呢? 用for吗?
假如我想XCOPY "D:\1111" "E:\8888" /d:1-1-2005 。 只拷此日期以前的文件,也就是拷2005年以前的文件。该怎么做呢?
作者: CrLf 时间: 2011-5-28 12:09
本帖最后由 zm900612 于 2011-5-28 12:27 编辑
发重了...请忽略此楼
作者: CrLf 时间: 2011-5-28 12:10
- @echo off
- xcopy /ls /d:1-1-2005 "D:\1111" "E:\8888" /d:1-1-2005 >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
- )
复制代码
作者: bmwtt123 时间: 2011-5-28 12:22
3# zm900612
万分的感谢!!!
作者: kangkangsz 时间: 2021-4-8 11:02
回复 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
帮忙再看一下哪里有什么问题,
作者: Batcher 时间: 2021-11-21 17:42
回复 1# bmwtt123 - robocopy "D:\1111" "E:\8888" /e /copyall /minage:20150101
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |