中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 03:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何按时间断备份文件及文件夹!! 查看 953 回复 7
楼 主 [求助]如何按时间断备份文件及文件夹!! 发表于 2008-07-14 12:07 ·  中国 广东 深圳 电信
初级用户
积分 27
发帖 10
注册 2006-12-14 10:23
19年会员
UID 73502
性别 男
状态 离线
文件夹aa , bb

把aa 文件夹下面于令天2点至5点生成的文件 复制到 bb 于令天2点至5点生成的文件夹下。

再把 bb文件夹下 于令天2点至5点生成的 文件 及 文件夹 都复制到 服务器上。。

小弟不才,无法写出来,,在此请教一下各位!!
2 发表于 2008-07-14 12:13 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
令天是哪一天?
呵呵,你给出的条件是不是可以多点,不要让帮你的人自己去假设条件吧。
批处理之家新域名:www.bathome.net
3 发表于 2008-07-14 14:55 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
仅供参考

@echo off
setlocal enabledelayedexpansion
rem 设置日期时间的格式
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sTimeFormat /t REG_SZ /d HH:mm:ss /f>nul
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyyMMdd /f>nul
rem 设置源文件夹
set SrcDir=C:\test\a
rem 设置目标文件夹
set DstDir=C:\test\b
rem 假设要删除上午9点到下午5点之间创建的文本文件
set begint=%date%09
set endt=%date%17
for %%a in ("%SrcDir%\*.txt") do call :getdt "%%a"
goto :eof
:getdt
for /f "skip=5 tokens=1,2" %%a in ('dir /tc %1') do (
if "%%a%%b" geq "%begint%" (
if "%%a%%b" leq "%endt%" (
del /q %1
)
)
goto :eof
)
4 发表于 2008-07-14 16:11 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
我晕,hat兄是不是考虑得太复杂了啊,居然还动用了注册表。
批处理之家新域名:www.bathome.net
5 发表于 2008-07-14 16:19 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
考虑到日期时间格式可能和楼主的不同,我也懒得问了,直接来硬算了,呵呵。
6 发表于 2008-07-14 21:51 ·  中国 广东 深圳 福田区 电信
初级用户
积分 27
发帖 10
注册 2006-12-14 10:23
19年会员
UID 73502
性别 男
状态 离线
不好意思,没表达清楚..

因为是每天都要收数据的...所以令天是指当前系统日期..

如令天是7月14号(鬼节呀,,晕)
找出aa文件夹下 所有 7月14号2点至5点生成的 文件 及文件夹
如果找到 就复制到 bb 下面的一文件夹内
否者,就结束...
-----------------------------------------------------------
至于"bb 下面的一文件夹" 如果在aa 下有文件在2 点至5点生成的话 就会生成"bb 下面的一文件夹" 这文件夹是系统自动生成以一串数字命名的.所以文件夹的名称是不知道的..... 只能用创建时间判断...

不知这样....

[ Last edited by xiaohangdos on 2008-7-14 at 09:52 PM ]
7 发表于 2008-07-16 09:35 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
楼主给的条件仍是不够,没办法,只有自己假设了:
aa bb 均为d:\test 下的文件夹,系统时间格式为2008-07-16 星期三 8:40:21.46

@echo off
set "code=abcdefghijklmnopqrstuvwxyz"&set n=26
:again
set /a a=%random%%%%n%
call,set a=%%code:~%a%,1%%
call,set code=%%code:%a%=%%
set str=%str%%a%&set /a n-=1
if %n% gtr 26 goto again
set t=%date:~,-4%
for /f "delims=" %%i in ('dir /s /b d:\test\aa') do if "%%~ti" gtr "%t%02:00" if "%%~ti" lss "%t%05:00" xcopy /y "%%i" d:\test\bb\%str%\


[ Last edited by zw19750516 on 2008-7-16 at 09:49 AM ]
批处理之家新域名:www.bathome.net
8 发表于 2008-07-16 13:01 ·  中国 广东 深圳 电信
初级用户
积分 27
发帖 10
注册 2006-12-14 10:23
19年会员
UID 73502
性别 男
状态 离线
好像没效果。。

不过谢谢楼上的。。。。
我还是慢慢学着,,以后自己来写。。
论坛跳转: