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

[文件操作] 【已解决】求一个从ftp下载指定日期之前的文件的批处理

求一个从ftp上获取数据的综合批处理:
1.链接ftp ip(Username Password)
2.在指定路径下获得本机时间的昨天(当前的日期-1天)往前10天的文件,文件格式为DSTAT_1PASS.xxxx.txt。
(顺便问一下,如果ftp的目录下有多个名称固定的文件夹,我需要把某些特定的文件夹都访问一下,有没有什么简单的方法,如果不行的话就只能一个路径一个路径的获取)
3.文件抓取存到本机指定的目录下。
(如果从ftp上获取的文件需要存到本机上两个不同的路径,怎么写?)

[ 本帖最后由 lazygc520 于 2009-4-3 10:39 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

回复 19楼 的帖子

  1. @echo off
  2. rem 指定FTP用户名
  3. set ftpUser=USERNAME
  4. rem 指定FTP密码
  5. set ftpPass=PASSWORD
  6. rem 指定FTP服务器地址
  7. set ftpIP=192.168.0.2
  8. rem 指定待下载的文件位于FTP服务器的什么位置
  9. set ftpFolder=SharedFile\
  10. rem 指定从FTP下载下来的文件存放到什么地方
  11. set DownFolder=C:\temp\
  12. >"%tmp%\MyDel.vbs" echo dt=date()-1
  13. >>"%tmp%\MyDel.vbs" echo s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^& right("0" ^& day(dt),2)
  14. >>"%tmp%\MyDel.vbs" echo wscript.echo s
  15. for /f %%a in ('cscript /nologo "%tmp%\MyDel.vbs"') do set yesterday=%%a
  16. set ftpFile=%temp%\TempAcc.txt
  17. >"%ftpFile%" echo %ftpUser%
  18. >>"%ftpFile%" echo %ftpPass%
  19. >>"%ftpFile%" echo cd "%ftpFolder%"
  20. >>"%ftpFile%" echo lcd "%DownFolder%"
  21. >>"%ftpFile%" echo bin
  22. >>"%ftpFile%" echo mget DSTAT_1PASS.*.%yesterday%*.txt
  23. >>"%ftpFile%" echo bye
  24. start ftp -v -i -s:"%ftpFile%" %ftpIP%
复制代码
1

评分人数

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

TOP

关键我怎么取昨天的信息,这个不会。。
还是希望给出代码。。。

[ 本帖最后由 lazygc520 于 2009-4-1 16:30 编辑 ]

TOP

自动连ftp:

>"%FtpFile%" echo username
>>"%FtpFile%" echo password
>>"%FtpFile%" echo path
>>"%FtpFile%" echo mget *.txt
>>"%FtpFile%" echo bye
start ftp -v -i -s:"%FtpFile%" ftp ip

获取昨天的日期:

>"%tmp%\MyDel.vbs" echo dt=date()-1
>>"%tmp%\MyDel.vbs" echo s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^& right("0" ^& day(dt),2)
>>"%tmp%\MyDel.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%tmp%\MyDel.vbs"') do set yesterday=%%a

不过如果要去dstat_1pass的格式文件怎么取?

TOP

回复 17楼 的帖子

我还是希望你能自己尝试一下“如何自动连接FTP”“如何获取昨天的日期”
如果搞不定,我随时愿意帮你。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我不是问截图中的文件如何获取,我是问*.txt文件的信息应该如何获取?条件参照顶楼,还是希望batcher给出代码.谢谢!~

TOP

回复 14楼 的帖子

截图中的文件名不包含日期信息,无法获取。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

如果有FTP 服务器的权限,可以写一批处理生成每天需要下载的文件列表到一个文本中,这样就简单多了

TOP

哦,像上面一个截图的文件是不能按日期来获取?
希望batcher给出完整的代码(关于上面的txt文件,假如只获取昨天的数据),谢谢!

[ 本帖最后由 lazygc520 于 2009-4-1 14:47 编辑 ]

TOP

回复 12楼 的帖子

可以根据文件名中20090309来获取
如果文件名中不包含日期信息就没办法了
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

那请问batcher,DSTAT_1PASS.F849462T0G.FT4.20090309125826.txt 这样的文件信息能不能通过时间来抓取?

TOP

像我附件图片这样的数据信息好不好按时间抓取?
[attach]1537[/attach]

TOP

回复 9楼 的帖子

要想直接下载,必须要求文件名(或文件夹名)中包含日期信息。
否则只能全部下载,再删除不需要的文件。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

长度是固定的,这样可以吗?

TOP

文件名中DSTAT_1PASS.F849462T0G.FT4.这段是不是固定的?或者有啥规律?
“不含时间信息”无法直接获得,只能全部下载到本地,再用批处理删除不需要的。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表