中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: ftp 删除服务器上的文件问题 上一主题 | 下一主题
westmstc
新手上路





积分 4
发帖 3
注册 2007-12-21
状态 离线
『楼 主』:  ftp 删除服务器上的文件问题

现在有一个BAT脚本,每天早晚分别上传不同的文件。现在想通过上传文件后自动把删除掉FTP上一周前的文件给删掉,只保留最近一周的,能不能实现。
文件格式如下。
008-11-25  11:32         1,131,266 posSeller_2008-12-12早.BAK
008-11-25  11:32         1,131,266 posSeller_2008-12-12晚.BAK
008-11-25  11:32         1,131,266 posSeller_2008-12-13早.BAK
008-11-25  11:32         1,131,266 posSeller_2008-12-13晚.BAK
008-11-25  11:32         1,131,266 posSeller_2008-12-14早.BAK
008-11-25  11:32         1,131,266 posSeller_2008-12-14晚.BAK
008-11-25  11:32         1,131,266 posSeller_2008-12-15早.BAK
008-11-25  11:32         1,131,266 posSeller_2008-12-15晚.BAK

ftp 脚本如下
@echo off
set dt=%date:~0,10%

if "%time:~0,5%" geq " 7:00" (
  if "%time:~0,5%" lss "12:00" (
    goto _amftp
  ) else if "%time:~0,5%" geq "12:00" (
    if "%time:~0,5%" lss "24:00" (
    goto _pmftp
    )
  )
)

:_amftp
echo nfspos> up.txt
echo nfspos>> up.txt
echo binary>> up.txt
echo hash>> up.txt
echo cd /nfspos/foodcard>> up.txt
echo put posSeller_%dt%早.BAK>> up.txt
echo bye>> up.txt
ftp -i  -s:up.txt  192.10.1.249
del up.txt
goto _end

:_pmftp
echo nfspos> up.txt
echo nfspos>> up.txt
echo binary>> up.txt
echo hash>> up.txt
echo cd /nfspos/foodcard>> up.txt
echo put posSeller_%dt%晚.BAK>> up.txt
echo bye>> up.txt
ftp -i  -s:up.txt  192.10.1.249
del up.txt
goto _end

:_end


2008-12-15 11:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

楼主不知道如何计算一周前的日期?还是不知道如何用ftp命令删除文件?
或者两个都不会,只能等待他人给出完整代码?



2008-12-15 11:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qwertl
中级用户





积分 461
发帖 243
注册 2007-10-14
状态 离线
『第 3 楼』:  

"现在想通过上传文件后自动把删除掉FTP上一周前的文件给删掉,只保留最近一周的,"

在FTP服务器上执行任务计划运行批处理来实现比较容易,通过客户端来好象不实现到.

2008-12-15 15:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 4 楼』:  

我只会说计算日期用DATEX




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-12-15 16:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 5 楼』:  

可以用来计算,某天某日,N天前后的日期




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-12-15 16:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
westmstc
新手上路





积分 4
发帖 3
注册 2007-12-21
状态 离线
『第 6 楼』:  

日期可以计算出来,但计算出来的日期怎么和服务器上的文件想比较,ftp 里可以用正则表达式吗。现在服务器是没有ROOT权限,做不了定时计划任务。

[ Last edited by westmstc on 2008-12-15 at 16:27 ]

2008-12-15 16:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
exzzz
初级用户

游手好闲 + 无所事事 ..



积分 194
发帖 167
注册 2007-4-30
状态 离线
『第 7 楼』:  

有个思路:
登陆ftp,list保存下来个TXT文件,每行是一个文件名。
然后把本地日期做个变量,然后根据变量生成最近7天的日期变量的文件名。
然后在TXT里面,查询每行的变量,将每行的变量用set命令替换这个变量7次,每一次都将7个日期变量中的一个替换为空,替换完毕后,这样剩下的txt就是应该删除文件的列表了,再登陆FTP ,del这些文件就可以了。

2008-12-15 16:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 8 楼』:  

我自己的数据备份软件脚本是这样处理的,每次运行的时候就删除三天前的数据文件,

for /f %%i in ('datex -d yyyymmdd -o 3') do (set old=%%i)
del empire_%old%.bak

[ Last edited by yishanju on 2008-12-15 at 16:59 ]




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-12-15 16:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
exzzz
初级用户

游手好闲 + 无所事事 ..



积分 194
发帖 167
注册 2007-4-30
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by yishanju at 2008-12-15 04:41 PM:
我在主题里并没有看到这样的意思

6楼里有这个意思。

2008-12-15 16:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 10 楼』:  Re 6楼

建议把6楼的描述更新到顶楼,以方便他人查看。



2008-12-15 18:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: