中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]备份最进30天,超过了删除最早的。求高手帮忙
作者:
标题: [求助]备份最进30天,超过了删除最早的。求高手帮忙 上一主题 | 下一主题
zhiyangchen
新手上路





积分 15
发帖 7
注册 2007-9-14
状态 离线
『楼 主』:  [求助]备份最进30天,超过了删除最早的。求高手帮忙

搞一个批处理

有一个目录,需要每天晚上9点,备份到最后一个分区的”temp“文件夹里。

检测"temp"文件夹,如果里面的文件夹数超过了30个,那么删除最早的那一个。


各位大哥大姐帮帮我啊。。小弟在此谢过了

用过搜索了 找不到我要的啊,而且很多都看不懂 :mad:

2007-9-16 10:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhiyangchen
新手上路





积分 15
发帖 7
注册 2007-9-14
状态 离线
『第 2 楼』:  

高手都不屑于帮我这种小问题  哎。。。。。。。。。。。。

2007-9-16 11:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhiyangchen
新手上路





积分 15
发帖 7
注册 2007-9-14
状态 离线
『第 3 楼』:  

有没有人能帮帮我啊?

2007-9-27 08:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ZJHJ
高级用户





积分 609
发帖 374
注册 2006-8-2
状态 离线
『第 4 楼』:  

你可以将备份的文件命名为1.xxx,每备份一次改变增大+1,如果检测到31.xxx,即del

2007-9-28 23:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
acme
中级用户




积分 238
发帖 98
注册 2007-4-10
来自 陕西
状态 离线
『第 5 楼』:  

我也想知道,高手呢?



一切皆有可能!我行!我能!
2007-10-8 20:54
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (422076812)  编辑帖子  回复  引用回复
l80d
初级用户





积分 26
发帖 9
注册 2006-12-8
状态 离线
『第 6 楼』:  

MoveOldFiles.cmd

@echo off
if "%1"=="" goto _usage
set dst=.\.
if not "%2"=="" if exist %2\. (set dst=%2\.) else (goto _err1)

for /r %dst% %%f in (*.*) do if %%~tf LSS %1 Move /y %%f D:\backup\ && echo Move %%f

goto _quit

:_usage
echo DelOldFile.cmd   Move files before assigned folder and date
echo Version 1.0 Copyleft by Climbing
echo syntax: DelOldFile ^<Date^>  [target Folder]
echo         ^<Date^>   Must assigned parameter,Date format:%date%,Files before the assigned date will be moveed(not include the assigned date)
echo         [target Folder]  Optional parameter,Assign the folder which files want to be moveed,default is current folder
goto _quit

:_err1
echo Err:Assigned folder:%2 not exist!

:_quit
set dst=
:End

用法:
MoveOldFiles 2007-08-15 D:\Logs
把2007-08-15以前在D:\Logs下的文件,移动到D:\backup\下

[ Last edited by l80d on 2007-10-8 at 09:34 PM ]

2007-10-8 21:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
james168
初级用户





积分 81
发帖 35
注册 2006-10-16
状态 离线
『第 7 楼』:  

试试这个:
SRC为源目录
X: 为temp所在的磁盘
有个要求:目录名不能包含空格
@echo off
title delete old folder when great 30 by james168
xcopy /s /q SRC X:\temp
for /f "skip=5 tokens=1,2 delims= " %%a in ('dir /ad /ogd X:\temp') do (
  if "%%b"=="个目录" set TOTAL=%%a
)
if %TOTAL% leq 32 goto notdel
set /a GRT=%TOTAL%-32
set NUM=0
for /f "tokens=1 delims= " %%j in ('dir /ad /ogd /b') do (call :dd1 "%%j")
goto end

:notdel
echo.
echo   Folder less than 30
goto end

:end
echo Press any key exit
pause>nul
exit

:dd1
set /a NUM+=1
if %NUM% leq %GRT% (rd /q /s X:\temp\%1)
goto :eof
[ Last edited by james168 on 2007-10-9 at 12:30 PM ]

2007-10-9 12:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
honghunter
中级用户





积分 321
发帖 135
注册 2007-2-4
状态 离线
『第 8 楼』:  

研究7楼代码,希望能变成支持目录空格的。



探讨批量下载与智能化的下载
2007-12-18 10:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 9 楼』:  

在论坛里搜索

一百天|100天

2007-12-18 11:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
honghunter
中级用户





积分 321
发帖 135
注册 2007-2-4
状态 离线
『第 10 楼』:  

@echo off
goto :startit
@REM/ 原作者:james168
@REM/ 摘自:http://www.cn-dos.net/forum/view ... id=F9NUPA#pid246736 7楼
@REM/
@REM/ 修改者:honghunter  www.dps4e.com
@REM/ 作用:将%src_dir%中的内容复制/备份到%tar_dir%.
@REM/       最多保留30个备份,超过30的时候,删除最早的备份。
@REM/       备份目录名称为备份时的日期
@REM/ 注意:如果某天备份不止一次,从第二次开始,目录名称上面将增加序号。
@REM/
@REM/ honghunter 在 winXP+SP2的CMD下测试通过。
@REM/
:startit

set CCDIR=%~dp0
set CCDIR=%CCDIR:~0,-1%

set src_dir=%USERPROFILE%\Favorites
set tar_dir=B:\JatDomeR5

title delete old folder when great 30

set target_dir=%tar_dir%\%DATE%\
set /a fix_dir=0
@REM/ 如果当天备份过,目录名称上面增加序号。
:get_target_dir
set /a fix_dir=%fix_dir%+1
if exist "%target_dir%\." set target_dir=%tar_dir%\%DATE%_%fix_dir%\
if exist "%target_dir%\." goto :get_target_dir

echo --------- Backup ---------
echo From : %src_dir%
echo To   : %target_dir%
echo --------------------------

xcopy /s /q "%src_dir%\*.*" %target_dir%

@REM/goto :eof
for /f "skip=5 tokens=1,2 delims= " %%a in ('dir /ad /ogd %tar_dir%') do (
  if "%%b"=="个目录" set TOTAL=%%a
)
if %TOTAL% leq 32 goto notdel
set /a GRT=%TOTAL%-32
set NUM=0
for /f "tokens=1 delims= " %%j in ('dir /ad /ogd /b %tar_dir%') do (call :dd1 "%%j")
GOTO end

:notdel
echo.
echo   Folder less than 30
goto end

:end
echo Press any key exit
@REM/pause>nul
@REM/exit

:dd1
set /a NUM+=1
if "%1"=="" goto :eof
if "%1"==" " goto :eof
if %NUM% leq %GRT% (rd /q /s %tar_dir%\%1)
goto :eof



探讨批量下载与智能化的下载
2007-12-18 12:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kavenlee72
中级用户




积分 369
发帖 87
注册 2003-9-14
状态 离线
『第 11 楼』:  

有没有在DOS7.1下能用的?谢谢了

2007-12-26 23:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: