中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 21:20
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问如何把一个文件夹中一周内更新过的文件copy到另外一个 查看 976 回复 3
楼 主 请问如何把一个文件夹中一周内更新过的文件copy到另外一个 发表于 2006-07-25 12:07 ·  中国 北京 联通
初级用户
积分 24
发帖 6
注册 2006-07-25 12:01
20年会员
UID 59204
性别 男
状态 离线
希望这个动作每天自动运行,查了xcopy的相关资料,参数好像只能指定某一日期,但我需要的是当前日期减7天,
# xcopy /D: 07-25-2006 source target
请问大家如何处理,谢谢!
2 发表于 2006-07-25 15:17 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
当前日期减7天有点难度哦,日期是有30天和31天进位的很难运算。
关注一下......
3 发表于 2006-07-25 18:27 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
下列高手优化下吧,我CMD命令很差劲的,仅作为参考


@echo off
set 年=%date:~0,-10%
set 月=%date:~5,-7%
set 日=%date:~8,-4%
set /A 七天前=%日%-7
if "%七天前%"=="-6" set /a 月=%月%-1
if "%七天前%"=="-6" set 七天前=25
if "%七天前%"=="-5" set /a 月=%月%-1
if "%七天前%"=="-5" set 七天前=26
if "%七天前%"=="-4" set /a 月=%月%-1
if "%七天前%"=="-4" set 七天前=27
if "%七天前%"=="-3" set /a 月=%月%-1
if "%七天前%"=="-3" set 七天前=28
if "%七天前%"=="-2" set /a 月=%月%-1
if "%七天前%"=="-2" set 七天前=29
if "%七天前%"=="-1" set /a 月=%月%-1
if "%七天前%"=="-1" set 七天前=30
xcopy /D:%月%-%七天前%-%年% source target


[ Last edited by fastslz on 2006-7-25 at 23:28 ]
4 发表于 2006-07-25 23:44 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线

@echo off
set 年=%date:~0,-10%
set 月=%date:~5,-7%
set 日=%date:~8,-4%
set /A 七天前=%日%-7
for %%a in (-1 -2 -3 -4 -5 -6) do if "%七天前%"=="%%a" set /a 月=%月%-1
for %%a in (-1 -2 -3 -4 -5 -6) do if "%七天前%"=="%%a" set /a 七天前=%七天前%+30
xcopy /D:%月%-%七天前%-%年% source target

简化了,以一个月30为准的
论坛跳转: