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

[文件操作] [已解决]批处理如何获取FTP上面下载1天前的文件?

[复制链接]
 楼主| 发表于 2009-4-8 17:33:37 | 显示全部楼层
\\这样的形式。。。。
发表于 2009-4-8 17:37:17 | 显示全部楼层

回复 46楼 的帖子

windows的路径是\
*nix的路径是/
 楼主| 发表于 2009-4-9 08:43:19 | 显示全部楼层
我刚刚试过了,Filelist.txt可以获取目录下的信息,但是相关的文件仍然无法下载。
发表于 2009-4-9 09:42:33 | 显示全部楼层

回复 48楼 的帖子

%temp%\TempDown.txt
内容如何?
 楼主| 发表于 2009-4-9 09:46:57 | 显示全部楼层
asx
asx-asx
bin
cd "/export/home/PROD/ntcdata"
bye
发表于 2009-4-9 09:52:28 | 显示全部楼层
"%temp%\FileDate.txt"
这个呢?
 楼主| 发表于 2009-4-9 09:59:21 | 显示全部楼层
"%temp%\FileDate.txt" 内容为空
发表于 2009-4-9 10:13:01 | 显示全部楼层

回复 52楼 的帖子

把代码保存为C:\test.bat
把@echo off删除
开始
运行
cmd
C:\test.bat
把完整的执行过程贴出来看看(尤其是生成"%temp%\FileDate.txt"那部分)

Q: 怎样把CMD窗口里的结果复制出来?
A: 右键单击CMD窗口的标题栏->"属性"->"选项"->勾选"快速编辑模式"->然后在CMD窗口用鼠标左键选中想要拷贝的内容->在选中的内容上单击鼠标右键->粘贴到文本文件中即可
 楼主| 发表于 2009-4-9 10:20:44 | 显示全部楼层

回复 53楼 的帖子

我从test.bat抓取的信息:

  1. E:\Documents and Settings\eetc>F:\test.bat

  2. E:\Documents and Settings\eetc>rem 指定FTP用户名

  3. E:\Documents and Settings\eetc>set ftpUser=asx

  4. E:\Documents and Settings\eetc>rem 指定FTP密码

  5. E:\Documents and Settings\eetc>set ftpPass=asx-asx

  6. E:\Documents and Settings\eetc>rem 指定FTP服务器地址

  7. E:\Documents and Settings\eetc>set ftpIP=172.19.103.7

  8. E:\Documents and Settings\eetc>rem 指定待下载的文件位于FTP服务器的什么位置

  9. E:\Documents and Settings\eetc>set ftpFolder=/export/home/PROD/ntcdata

  10. E:\Documents and Settings\eetc>rem 指定从FTP下载下来的文件存放到什么地方

  11. E:\Documents and Settings\eetc>set DownFolder=E:\Temp

  12. E:\Documents and Settings\eetc>rem 指定下载几天前的文件

  13. E:\Documents and Settings\eetc>set DaysAgo=1

  14. E:\Documents and Settings\eetc>set ftpDir=E:\DOCUME~1\eetc\LOCALS~1\Temp\TempDir
  15. .txt

  16. E:\Documents and Settings\eetc>set ftpDown=E:\DOCUME~1\eetc\LOCALS~1\Temp\TempDo
  17. wn.txt

  18. E:\Documents and Settings\eetc>rem 假设本机日期格式为yyyy-mm-dd

  19. E:\Documents and Settings\eetc>set FileY=2009

  20. E:\Documents and Settings\eetc>call :DateToDays 2009 04 09 PassDays

  21. E:\Documents and Settings\eetc>setlocal ENABLEEXTENSIONS

  22. E:\Documents and Settings\eetc>set yy=2009  & set mm=04  & set dd=09

  23. E:\Documents and Settings\eetc>if 12009 LSS 200 if 12009 LSS 170 (set yy=202009
  24. )  else (set yy=192009 )

  25. E:\Documents and Settings\eetc>set /a dd=10009%100,mm=10004%100

  26. E:\Documents and Settings\eetc>set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=15
  27. 3*m+2

  28. E:\Documents and Settings\eetc>set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633

  29. E:\Documents and Settings\eetc>endlocal & set PassDays=14343  & goto :EOF

  30. E:\Documents and Settings\eetc>set /a PassDays-=DaysAgo

  31. E:\Documents and Settings\eetc>call :DaysToDate 14342 DstYear DstMonth DstDay

  32. E:\Documents and Settings\eetc>setlocal ENABLEEXTENSIONS

  33. E:\Documents and Settings\eetc>set /a a=14342+2472632,b=4*a+3,b/=146097,c=-b*146
  34. 097,c/=4,c+=a

  35. E:\Documents and Settings\eetc>set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+
  36. 2,m/=153,dd=153*m+2,dd/=5

  37. E:\Documents and Settings\eetc>set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*10
  38. 0+d-4800+m/10

  39. E:\Documents and Settings\eetc>(if 4 LSS 10 set mm=04 )  & (if 8 LSS 10 set dd=0
  40. 8 )

  41. E:\Documents and Settings\eetc>endlocal & set DstYear=2009  & set DstMonth=04  &
  42. set DstDay=08  & goto :EOF

  43. E:\Documents and Settings\eetc>echo.asx1>"E:\DOCUME~1\eetc\LOCALS~1\Temp\TempDir
  44. .txt"

  45. E:\Documents and Settings\eetc>echo.asx-asx1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\Te
  46. mpDir.txt"

  47. E:\Documents and Settings\eetc>echo bin 1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\TempD
  48. ir.txt"

  49. E:\Documents and Settings\eetc>echo cd "/export/home/PROD/ntcdata" 1>>"E:\DOCUME
  50. ~1\eetc\LOCALS~1\Temp\TempDir.txt"

  51. E:\Documents and Settings\eetc>echo dir * "E:\DOCUME~1\eetc\LOCALS~1\Temp\FileLi
  52. st.txt" 1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\TempDir.txt"

  53. E:\Documents and Settings\eetc>echo bye 1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\TempD
  54. ir.txt"

  55. E:\Documents and Settings\eetc>start ftp -v -i -s:"E:\DOCUME~1\eetc\LOCALS~1\Tem
  56. p\TempDir.txt" 172.19.103.7

  57. E:\Documents and Settings\eetc>rem 根据实际情况自行调节延迟时间

  58. E:\Documents and Settings\eetc>ping -n 10 127.1  1>nul

  59. E:\Documents and Settings\eetc>findstr /i ":*\.SWM$" "E:\DOCUME~1\eetc\LOCALS~1\
  60. Temp\FileList.txt" 1>"E:\DOCUME~1\eetc\LOCALS~1\Temp\FileDate.txt"

  61. E:\Documents and Settings\eetc>findstr /i ":*\.TWM$" "E:\DOCUME~1\eetc\LOCALS~1\
  62. Temp\FileList.txt" 1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\FileDate.txt"

  63. E:\Documents and Settings\eetc>findstr /i ":*\.XWM$" "E:\DOCUME~1\eetc\LOCALS~1\
  64. Temp\FileList.txt" 1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\FileDate.txt"

  65. E:\Documents and Settings\eetc>echo.asx1>"E:\DOCUME~1\eetc\LOCALS~1\Temp\TempDow
  66. n.txt"

  67. E:\Documents and Settings\eetc>echo.asx-asx1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\Te
  68. mpDown.txt"

  69. E:\Documents and Settings\eetc>echo bin 1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\TempD
  70. own.txt"

  71. E:\Documents and Settings\eetc>echo cd "/export/home/PROD/ntcdata" 1>>"E:\DOCUME
  72. ~1\eetc\LOCALS~1\Temp\TempDown.txt"

  73. E:\Documents and Settings\eetc>(for /F "usebackq tokens=1-9 delims= " %a in ("E:
  74. \DOCUME~1\eetc\LOCALS~1\Temp\FileDate.txt") do (
  75. setlocal enabledelayedexpansion
  76. if "%f" EQU "Jan" (set FileM=01 )  else if "%f" EQU "Feb" (set FileM=02 )  else
  77. if "%f" EQU "Mar" (set FileM=03 )  else if "%f" EQU "Apr" (set FileM=04 )  else
  78. if "%f" EQU "May" (set FileM=05 )  else if "%f" EQU "Jun" (set FileM=06 )  else
  79. if "%f" EQU "Jul" (set FileM=07 )  else if "%f" EQU "Aug" (set FileM=08 )  else
  80. if "%f" EQU "Sep" (set FileM=09 )  else if "%f" EQU "Oct" (set FileM=10 )  else
  81. if "%f" EQU "Nov" (set FileM=11 )  else if "%f" EQU "Dec" (set FileM=12 )
  82. set FileD=10%g
  83. set FileD=!FileD:~-2!
  84. if "!FileM!" EQU "04" (if "!FileD!" EQU "08" (echo get "%i" ) )
  85. endlocal
  86. ) ) 1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\TempDown.txt"

  87. E:\Documents and Settings\eetc>echo bye 1>>"E:\DOCUME~1\eetc\LOCALS~1\Temp\TempD
  88. own.txt"

  89. E:\Documents and Settings\eetc>start ftp -v -i -s:"E:\DOCUME~1\eetc\LOCALS~1\Tem
  90. p\TempDown.txt" 172.19.103.7

  91. E:\Documents and Settings\eetc>goto :eof
复制代码
 楼主| 发表于 2009-4-9 10:38:06 | 显示全部楼层
我一共获得了4个文件
发表于 2009-4-9 10:43:21 | 显示全部楼层

回复 54楼 的帖子

"E:\DOCUME~1\eetc\LOCALS~1\Temp\FileList.txt"
内容贴出来看看

还有,你手工执行一下findstr命令,看看为什么"E:\DOCUME~1\eetc\LOCALS~1\Temp\FileDate.txt"内容为空。
发表于 2009-4-9 10:50:37 | 显示全部楼层

回复 55楼 的帖子

FileList.txt中有1万多行数据,有可能是延迟不够。
你试试把延迟中的10改成20、30、40、50等,直到找到一个合适的延迟时间。

rem 根据实际情况自行调节延迟时间
ping -n 10 127.1 >nul
 楼主| 发表于 2009-4-9 10:52:45 | 显示全部楼层
请问这个findstr命令怎么使用?
findstr path/file  ?
 楼主| 发表于 2009-4-9 11:02:32 | 显示全部楼层
如果要同时把数据存入本地的两个文件夹应该怎么写?谢谢!~
 楼主| 发表于 2009-4-9 11:12:02 | 显示全部楼层
我的文件内容已经可以取得了,但是并没有存到指定的文件夹,而是存到了桌面上。请问是怎么回事?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 18:16 , Processed in 0.016234 second(s), 6 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表