标题: [网络连接] 如何用FTP上传动态日期的文件 [打印本页]
作者: sxat 时间: 2008-9-19 15:55 标题: 如何用FTP上传动态日期的文件
我想实现自动FTP将一个文件传输到另外一台机子上,我是这样做的:
1、远程机子已经建立好FTP服务
2、本地文件是数据库自动备份后的文件,文件名是根据日期生成的
下面是另个文件代码:
1、athr.bat
- FOR /F "tokens=1-4 delims=/ " %%i IN ('date /t') DO SET DATE=-%%i
- exp athr_zhengshi/1@nc_192.168.0.211 file=e:\zdbf\athr_zhengshi%DATE%.dmp
- e:
- cd\zdbf
- rar a athr_zhengshi%DATE%.rar *.dmp
- del *.dmp
- echo "FTP Begin to get date ">>"C:\ftploghr.txt
- echo " ">>"C:\ftploghr.txt
- echo "time" %date% %time% >>"C:\ftploghr.txt
- C:\WINDOWS\system32\ftp -n -s:"e:\zdbf\ftpputhr.txt" >>"c:\ftploghr.txt
- echo "end ftp time" %date% %time% >>"C:\ftploghr.txt
复制代码
2、ftpputhr.txt
- open 192.168.0.240
- user ncback ncback
- binary
- cd \back\ncback
- lcd e:\zdbf
- prompt
- put athr_zhengshi%DATE%.rar
- close
- bye
复制代码
现在的问题是在ftpputhr.txt中不能上传,提示找不到文件athr_zhengshi%DATE%.rar???
我怀疑是PUT或者FTP不能识别%DATE%,请教高手怎么解决!!!!
帮忙快分析一下啊!!!!谢谢了!!!!
作者: Batcher 时间: 2008-9-19 16:00
你用athr.bat动态生成ftpputhr.txt即可
作者: sxat 时间: 2008-9-19 17:47 标题: 怎么动态生成
怎么动态生成,麻烦详细点,谢谢!
作者: pusofalse 时间: 2008-9-19 17:54
“今天”上传“昨天”的文件?
作者: sxat 时间: 2008-9-19 18:54
是当时备份下来就上传,关键是让FTP里识别以系统时间命名的动态文件
作者: pusofalse 时间: 2008-9-19 19:21
FOR /F "tokens=1-4 delims=/ " %%i IN ('date /t') DO SET DATE=-%%i
这一句,第2、3、4列在这里有何用处吗?
还有%date%是系统环境变量,set date=-%%i之后,date的值将一直是-%%i,所以之后的echo "end ftp time" %date% %time% >>"C:\ftploghr.txt中的%date%不会随系统日期实时变化。
C:\WINDOWS\system32\ftp -n -s:"e:\zdbf\ftpputhr.txt" >>"c:\ftploghr.txt
这里貌似少了echo。
还有登陆FTP服务器,是在一个新的FTP命令外壳中执行的,有别于CMD,%date%在里面是否会被扩展也是一个问题。
应该用echo生成ftpputhr.txt:(echo open 192.168.0.240
echo user ncback ncback
echo binary
echo cd \back\ncback
echo lcd e:\zdbf
echo prompt
echo put athr_zhengshi%DAT%.rar
echo close
echo bye)>>ftpputhr.txt不要用date这类的全局变量,相应的前面set DATE=-%%i 也要改为DAT。
[ 本帖最后由 pusofalse 于 2008-9-19 19:26 编辑 ]
作者: Batcher 时间: 2008-9-19 20:16
- FOR /F "tokens=1-4 delims=/ " %%i IN ('date /t') DO SET DATE=-%%i
- exp athr_zhengshi/1@nc_192.168.0.211 file=e:\zdbf\athr_zhengshi%DATE%.dmp
- e:
- cd\zdbf
- rar a athr_zhengshi%DATE%.rar *.dmp
- del *.dmp
-
- >"e:\zdbf\ftpputhr.txt" echo open 192.168.0.240
- >>"e:\zdbf\ftpputhr.txt" echo user ncback ncback
- >>"e:\zdbf\ftpputhr.txt" echo binary
- >>"e:\zdbf\ftpputhr.txt" echo cd \back\ncback
- >>"e:\zdbf\ftpputhr.txt" echo lcd e:\zdbf
- >>"e:\zdbf\ftpputhr.txt" echo prompt
- >>"e:\zdbf\ftpputhr.txt" echo put athr_zhengshi%DATE%.rar
- >>"e:\zdbf\ftpputhr.txt" echo close
- >>"e:\zdbf\ftpputhr.txt" echo bye
-
- echo "FTP Begin to get date ">>"C:\ftploghr.txt
- echo " ">>"C:\ftploghr.txt
- echo "time" %date% %time% >>"C:\ftploghr.txt
- C:\WINDOWS\system32\ftp -n -s:"e:\zdbf\ftpputhr.txt" >>"c:\ftploghr.txt
- echo "end ftp time" %date% %time% >>"C:\ftploghr.txt
复制代码
两个空行中间的就是用来生成ftpputhr.txt的
友情提示:
1、自定义的变量最好不要和系统变量同名。
2、不同的系统,日期时间的格式可能不同,你这样定义date变量的方法可能存在隐患。
作者: sxat 时间: 2008-9-20 09:41
谢谢各位版主的鼎力帮忙,问题解决了。batcher 的方法解决的,希望有其他兄弟也可以借鉴!!
作者: sxat 时间: 2008-9-20 14:36
在请教一下,这个是ORICAL的数据库,如果是SYSBASE的数据库,那个备份命令怎么写???
作者: Batcher 时间: 2008-9-20 16:40
你先去学习一下ORICAL和SYSBASE,先学会如何手工备份,再考虑如何用批处理实现。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |