中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-26 23:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]自动备份问题 查看 749 回复 7
楼 主 [求助]自动备份问题 发表于 2007-11-30 21:19 ·  中国 广东 中山 电信
新手上路
积分 10
发帖 4
注册 2007-11-30 20:51
18年会员
UID 104289
性别 男
状态 离线
sql2000的数据库
有20个bak文件。这20个是每天备份一个的。
文件名是以时间自动命名的。
我想找出最新的一个bak文件。备份到FTP上去
在FTP上删掉以前的 只保留最新的两个。
2 发表于 2007-11-30 21:31 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
自动命名的文件时间格式?
第一高手 第二高手

3 发表于 2007-12-01 12:20 ·  中国 广东 中山 电信
新手上路
积分 10
发帖 4
注册 2007-11-30 20:51
18年会员
UID 104289
性别 男
状态 离线
main_db_200711290800.BAK
main_db_200711300800.BAK
main_db_200712010800.BAK
4 发表于 2007-12-01 13:58 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
发错了

[ Last edited by fastslz on 2007-12-1 at 02:00 PM ]
第一高手 第二高手

5 发表于 2007-12-01 14:00 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
for /f "delims=" %%a in ('dir /b /a-d /od D:\test\*.bak') do (
for /f "tokens=2* delims=_" %%i in ('echo.%%a') do call :slz "%%i" "%%~nj" "%%a"
)
echo 最新日期%most% 对应文件名%file%
echo 次新日期%most1% 对应文件名%file1%
echo FTP没测试环境自己搞定
pause

:slz
set "fdate=%~2"
if not defined fdate goto:eof
set "filedate=%fdate:~2,-2%"
if not defined most set "most=0"
if %filedate% gtr %most% (
set "most=%filedate%"
set "most1=%most%"
set "file=%~3"
set "file1=%file%"
)
goto:eof
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
explore888 +1 2007-12-01 14:56
第一高手 第二高手

6 发表于 2007-12-01 14:51 ·  中国 广东 中山 电信
新手上路
积分 10
发帖 4
注册 2007-11-30 20:51
18年会员
UID 104289
性别 男
状态 离线
谢谢你
在登陆FTP后 怎么样 把这个变量上传上去


我用下面的实现了自动登陆
BAT批处理实现登陆FTP
假设登陆 ftp://192.168.0.1 ,登陆用户: admin ,密码: pass ,上传文件c:\00.txt ,
需要文件c:\test.bat 和 c:\test.scr

test.bat文件
ftp -n -s:test.scr 192.168.0.1


test.scr文件
user admin
pass
put c:\00.txt
quit
7 发表于 2007-12-01 16:15 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
FTP我盲区,很难回答
或许你可以echo一个test.scr
@echo off
for /f "delims=" %%a in ('dir /b /a-d /od D:\test\*.bak') do (
for /f "tokens=2* delims=_" %%i in ('echo.%%a') do call :slz "%%i" "%%~nj" "%%a"
)
echo 最新日期%most% 对应文件名%file%
echo 次新日期%most1% 对应文件名%file1%
>test.scr echo user admin
>>test.scr echo pass
>>test.scr echo put "%file%"
>>test.scr echo put "%file1%"
>>test.scr echo quit
ftp -n -s:test.scr 192.168.0.1
pause

:slz
set "fdate=%~2"
if not defined fdate goto:eof
set "filedate=%fdate:~2,-2%"
if not defined most set "most=0"
if %filedate% gtr %most% (
set "most=%filedate%"
set "most1=%most%"
set "file=%~3"
set "file1=%file%"
)
goto:eof

筛选删除FTP上我无能为力
第一高手 第二高手

8 发表于 2007-12-01 16:59 ·  中国 广东 中山 电信
新手上路
积分 10
发帖 4
注册 2007-11-30 20:51
18年会员
UID 104289
性别 男
状态 离线
可以在FTP机上搞批处理找出上传的按时间最新的两个文件保存起来。别的都删了。也可以啊
论坛跳转: