|
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 |
|