Board logo

标题: [文件操作] 在ftp服务器上下载昨天的指定文件. [打印本页]

作者: hello10086    时间: 2009-6-29 13:39     标题: 在ftp服务器上下载昨天的指定文件.

跟据其它的代码写了一个bat,是取当天日期的文件,可是不知道为什么,一运行就取09.6.25日文件.
我想写一个"在ftp服务器上下载昨天日期为名称的文件 例20090627.rar,我查了一下资料,也没写出来.请高手帮助一下.


echo off
@set today=%date:~0,10%
@set today=%today:-=%
@set FtpFile=%temp%\TempAcc.txt
>>"%FtpFile%" echo ftp1
>>"%FtpFile%" echo ftp2007a
>>"%FtpFile%" echo bin
>>"%FtpFile%" echo cd a\b\c
>>"%FtpFile%" echo mget %today%.rar
>>"%FtpFile%" echo bye
start ftp -v -i -s:"%FtpFile%" 10.200.1.21

md E:\testrar\%today%\

[ 本帖最后由 hello10086 于 2009-6-29 13:40 编辑 ]
作者: hello10086    时间: 2009-6-29 15:10

那位兄弟,帮我一下,提供此信息呀!
作者: keen    时间: 2009-6-29 16:22     标题: 回复 2楼 的帖子

你自己写的代码是取当天的文件,要想取前一天的文件,只要要把当天的数值取出来,把年月日中的日减去一天,不就是前一天的了吗,也就是说,你只要把的你代码中的%today%再稍作改变一下。
注意,一个月的月初时,就是1号时,要判断上个月是30天还是31天。
作者: Batcher    时间: 2009-6-29 19:10

批处理获取指定天数之前的日期
http://bbs.bathome.net/thread-3330-1-1.html
作者: hello10086    时间: 2009-6-30 13:42

非常感谢,解决了,谢谢两位高手。
作者: hello10086    时间: 2009-6-30 14:14

为什么我一改日期,比如我将我的系统日期改为20090626,那应该取的是20090625的文件,可是还是取的20090629的文件.真晕呀(当天是20090630)

echo off

@set FtpFile=%temp%\TempAcc.txt
::需要调用VBS
rem 指定天数
set DaysAgo=1
>"%temp%\MyDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%\MyDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\MyDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do (
  set DstDate=%%a
)
set DstDate=%DstDate:~0,4%%DstDate:~4,2%%DstDate:~6,2%
echo %DaysAgo%天之前的日期是:%DstDate%
@pause

>>"%FtpFile%" echo user
>>"%FtpFile%" echo passwd
>>"%FtpFile%" echo bin
>>"%FtpFile%" echo cd aa\bb\cc
>>"%FtpFile%" echo mget %DstDate%.rar
>>"%FtpFile%" echo bye
start ftp -v -i -s:"%FtpFile%" 10.200.1.21
作者: keen    时间: 2009-6-30 15:30     标题: 回复 6楼 的帖子

那你打开%temp%\TempAcc.txt文件,看看。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2