|
xiaohangdos
初级用户
积分 27
发帖 10
注册 2006-12-14
状态 离线
|
『楼 主』:
[求助]如何按时间断备份文件及文件夹!!
文件夹aa , bb
把aa 文件夹下面于令天2点至5点生成的文件 复制到 bb 于令天2点至5点生成的文件夹下。
再把 bb文件夹下 于令天2点至5点生成的 文件 及 文件夹 都复制到 服务器上。。
小弟不才,无法写出来,,在此请教一下各位!!
|
|
2008-7-14 12:07 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
2 楼』:
令天是哪一天?
呵呵,你给出的条件是不是可以多点,不要让帮你的人自己去假设条件吧。
|
批处理之家新域名:www.bathome.net |
|
2008-7-14 12:13 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
3 楼』:
仅供参考
@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
)
|
|
|
2008-7-14 14:55 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
|
2008-7-14 16:11 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
5 楼』:
考虑到日期时间格式可能和楼主的不同,我也懒得问了,直接来硬算了,呵呵。
|
|
|
2008-7-14 16:19 |
|
|
xiaohangdos
初级用户
积分 27
发帖 10
注册 2006-12-14
状态 离线
|
『第
6 楼』:
不好意思,没表达清楚..
因为是每天都要收数据的...所以令天是指当前系统日期..
如令天是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 ]
|
|
2008-7-14 21:51 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
7 楼』:
楼主给的条件仍是不够,没办法,只有自己假设了:
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 |
|
2008-7-16 09:35 |
|
|
xiaohangdos
初级用户
积分 27
发帖 10
注册 2006-12-14
状态 离线
|
『第
8 楼』:
好像没效果。。
不过谢谢楼上的。。。。
我还是慢慢学着,,以后自己来写。。
|
|
2008-7-16 13:01 |
|