[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 如何用FTP上传动态日期的文件

我想实现自动FTP将一个文件传输到另外一台机子上,我是这样做的:
1、远程机子已经建立好FTP服务
2、本地文件是数据库自动备份后的文件,文件名是根据日期生成的
下面是另个文件代码:
1、athr.bat
  1. FOR /F "tokens=1-4 delims=/ " %%i IN ('date /t') DO SET DATE=-%%i
  2. exp athr_zhengshi/1@nc_192.168.0.211 file=e:\zdbf\athr_zhengshi%DATE%.dmp
  3. e:
  4. cd\zdbf
  5. rar a athr_zhengshi%DATE%.rar *.dmp
  6. del *.dmp
  7. echo "FTP Begin to get date  ">>"C:\ftploghr.txt
  8. echo "  ">>"C:\ftploghr.txt
  9. echo "time" %date% %time% >>"C:\ftploghr.txt
  10. C:\WINDOWS\system32\ftp -n -s:"e:\zdbf\ftpputhr.txt" >>"c:\ftploghr.txt
  11. echo "end ftp time" %date% %time% >>"C:\ftploghr.txt
复制代码

2、ftpputhr.txt
  1. open 192.168.0.240
  2. user ncback ncback
  3. binary
  4. cd \back\ncback
  5. lcd e:\zdbf
  6. prompt
  7. put athr_zhengshi%DATE%.rar
  8. close
  9. bye
复制代码
现在的问题是在ftpputhr.txt中不能上传,提示找不到文件athr_zhengshi%DATE%.rar???

我怀疑是PUT或者FTP不能识别%DATE%,请教高手怎么解决!!!!

帮忙快分析一下啊!!!!谢谢了!!!!
1

评分人数

你用athr.bat动态生成ftpputhr.txt即可
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

怎么动态生成

怎么动态生成,麻烦详细点,谢谢!

TOP

“今天”上传“昨天”的文件?
心绪平和,眼藏静谧。

TOP

是当时备份下来就上传,关键是让FTP里识别以系统时间命名的动态文件

TOP

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 编辑 ]
心绪平和,眼藏静谧。

TOP

  1. FOR /F "tokens=1-4 delims=/ " %%i IN ('date /t') DO SET DATE=-%%i
  2. exp athr_zhengshi/1@nc_192.168.0.211 file=e:\zdbf\athr_zhengshi%DATE%.dmp
  3. e:
  4. cd\zdbf
  5. rar a athr_zhengshi%DATE%.rar *.dmp
  6. del *.dmp
  7. >"e:\zdbf\ftpputhr.txt" echo open 192.168.0.240
  8. >>"e:\zdbf\ftpputhr.txt" echo user ncback ncback
  9. >>"e:\zdbf\ftpputhr.txt" echo binary
  10. >>"e:\zdbf\ftpputhr.txt" echo cd \back\ncback
  11. >>"e:\zdbf\ftpputhr.txt" echo lcd e:\zdbf
  12. >>"e:\zdbf\ftpputhr.txt" echo prompt
  13. >>"e:\zdbf\ftpputhr.txt" echo put athr_zhengshi%DATE%.rar
  14. >>"e:\zdbf\ftpputhr.txt" echo close
  15. >>"e:\zdbf\ftpputhr.txt" echo bye
  16. echo "FTP Begin to get date  ">>"C:\ftploghr.txt
  17. echo "  ">>"C:\ftploghr.txt
  18. echo "time" %date% %time% >>"C:\ftploghr.txt
  19. C:\WINDOWS\system32\ftp -n -s:"e:\zdbf\ftpputhr.txt" >>"c:\ftploghr.txt
  20. echo "end ftp time" %date% %time% >>"C:\ftploghr.txt
复制代码
两个空行中间的就是用来生成ftpputhr.txt的

友情提示:
1、自定义的变量最好不要和系统变量同名。
2、不同的系统,日期时间的格式可能不同,你这样定义date变量的方法可能存在隐患。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

谢谢各位版主的鼎力帮忙,问题解决了。batcher 的方法解决的,希望有其他兄弟也可以借鉴!!

TOP

在请教一下,这个是ORICAL的数据库,如果是SYSBASE的数据库,那个备份命令怎么写???

TOP

你先去学习一下ORICAL和SYSBASE,先学会如何手工备份,再考虑如何用批处理实现。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表