[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
如果文件夹名称都是 20090403 这种格式的日期,可以试试这样:
  1. @echo off
  2. rem 指定FTP用户名
  3. set ftpUser=asx
  4. rem 指定FTP密码
  5. set ftpPass=asx-asx
  6. rem 指定FTP服务器地址
  7. set ftpIP=172.19.103.7
  8. rem 指定待下载的文件位于FTP服务器的什么位置
  9. set ftpFolder=/export/home/PROD/ntcdata
  10. rem 指定从FTP下载下来的文件存放到什么地方
  11. set LocalFolder=E:\Temp
  12. rem 指定下载几天前的文件
  13. set DaysAgo=1
  14. for /f %%i in ('PowerShell -Command "&{Get-Date (Get-Date).AddDays(-%DaysAgo%) -uformat "%%Y%%m%%d"}"') do (
  15.     set "DstDate=%%i"
  16. )
  17. set ftpFolder=%ftpFolder%/%DstDate%
  18. set ftpFile=%temp%\TempFTP.txt
  19. >"%ftpFile%" echo,%ftpUser%
  20. >>"%ftpFile%" echo,%ftpPass%
  21. >>"%ftpFile%" echo cd "%ftpFolder%"
  22. >>"%ftpFile%" echo lcd "%LocalFolder%"
  23. >>"%ftpFile%" echo bin
  24. >>"%ftpFile%" echo mget *.*
  25. >>"%ftpFile%" echo bye
  26. start ftp -v -i -s:"%ftpFile%" %ftpIP%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3楼 的帖子

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

TOP

回复 6楼 的帖子

你可以参照4楼的方法,在dir命令的返回结果中获取日期信息。
不过,日期信息所在列是不确定的,而且格式也是不同的。
你可以先看看自己连上的FTP服务器后,dir命令的返回结果如何。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8楼 的帖子

先把英文月份转换成数字
再计算日期
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 11楼 的帖子

在动手写代码之前,还有一点需要确认,那就是倒数第二列的时间。
大于某个时间(比如6个月之前)的文件,倒数第二列会显示年;小于某个时间(比如6个月之内)的文件,倒数第二列会显示时间。
你需要问问服务器管理员这里是如何设置的。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 13楼 的帖子

你能确定它们都是2009年?万一有些是2008年咋办?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 15楼 的帖子

好,你把10楼的结果以文本的形式贴出来,我帮你写代码。
可以用这个ftp命令:
dir * a.txt
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 17楼 的帖子

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

TOP

回复 19楼 的帖子

是生成在本机的命令行解释器当前目录下
我得去看电影了
你先把结果贴出来
如果没有其他人帮你写
我待会回来写
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 21楼 的帖子

  1. @echo off
  2. for /f "tokens=1-9 delims= " %%a in (a.txt) do (
  3.   if /i "%%~xi" equ ".SWM" (
  4.     echo %%i %%f %%g %%h
  5.   ) else if /i "%%~xi" equ ".TWM" (
  6.     echo %%i %%f %%g %%h
  7.   ) else if /i "%%~xi" equ ".XWM" (
  8.     echo %%i %%f %%g %%h
  9.   )
  10. )
  11. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 23楼 的帖子

  1. @echo off
  2. rem 指定FTP用户名
  3. set ftpUser=BatHome
  4. rem 指定FTP密码
  5. set ftpPass=Batcher
  6. rem 指定FTP服务器地址
  7. set ftpIP=192.168.0.2
  8. set ftpFile=%temp%\TempAcc.txt
  9. >"%ftpFile%" echo %ftpUser%
  10. >>"%ftpFile%" echo %ftpPass%
  11. >>"%ftpFile%" echo bin
  12. >>"%ftpFile%" echo dir * a.txt
  13. >>"%ftpFile%" echo bye
  14. start ftp -v -i -s:"%ftpFile%" %ftpIP%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 25楼 的帖子

  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. set ftpFile=%temp%\TempAcc.txt
  9. >"%ftpFile%" echo.%ftpUser%
  10. >>"%ftpFile%" echo.%ftpPass%
  11. >>"%ftpFile%" echo bin
  12. >>"%ftpFile%" echo dir * C:\BatHome.txt
  13. >>"%ftpFile%" echo bye
  14. start ftp -v -i -s:"%ftpFile%" %ftpIP%
  15. rem 根据实际情况自行调节延迟时间
  16. ping -n 10 127.1 >nul
  17. for /f "tokens=1-9 delims= " %%a in (C:\BatHome.txt) do (
  18.   if /i "%%~xi" equ ".SWM" (
  19.     echo.%%i %%f %%g %%h
  20.   ) else if /i "%%~xi" equ ".TWM" (
  21.     echo.%%i %%f %%g %%h
  22.   ) else if /i "%%~xi" equ ".XWM" (
  23.     echo.%%i %%f %%g %%h
  24.   )
  25. )
  26. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 27楼 的帖子

如果不对文件日期信息进行任何比较操作,那还绕个圈干吗?直接mget就行。
  1. mget *.SWM
  2. mget *.TWM
  3. mget *.XWM
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 30楼 的帖子

  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=\export\home\PROD\ntcdata\
  10. rem 指定下载几天前的文件
  11. set DaysAgo=1
  12. set ftpDir=%temp%\TempDir.txt
  13. set ftpDown=%temp%\TempDown.txt
  14. rem 假设本机日期格式为yyyy-mm-dd
  15. set FileY=%date:~0,4%
  16. call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
  17. set /a PassDays-=DaysAgo
  18. call :DaysToDate %PassDays% DstYear DstMonth DstDay
  19. >"%ftpDir%" echo.%ftpUser%
  20. >>"%ftpDir%" echo.%ftpPass%
  21. >>"%ftpDir%" echo bin
  22. >>"%ftpDir%" echo cd "%ftpFolder%"
  23. >>"%ftpDir%" echo dir * "%temp%\FileList.txt"
  24. >>"%ftpDir%" echo bye
  25. start ftp -v -i -s:"%ftpDir%" %ftpIP%
  26. rem 根据实际情况自行调节延迟时间
  27. ping -n 10 127.1 >nul
  28. findstr /i ":*\.SWM$" "%temp%\FileList.txt">"%temp%\FileDate.txt"
  29. findstr /i ":*\.TWM$" "%temp%\FileList.txt">>"%temp%\FileDate.txt"
  30. findstr /i ":*\.XWM$" "%temp%\FileList.txt">>"%temp%\FileDate.txt"
  31. >"%ftpDown%" echo.%ftpUser%
  32. >>"%ftpDown%" echo.%ftpPass%
  33. >>"%ftpDown%" echo bin
  34. >>"%ftpDown%" echo cd "%ftpFolder%"
  35. (for /f "usebackq tokens=1-9 delims= " %%a in ("%temp%\FileDate.txt") do (
  36.   setlocal enabledelayedexpansion
  37.   if "%%f" equ "Jan" (
  38.     set FileM=01
  39.   ) else if "%%f" equ "Feb" (
  40.     set FileM=02
  41.   ) else if "%%f" equ "Mar" (
  42.     set FileM=03
  43.   ) else if "%%f" equ "Apr" (
  44.     set FileM=04
  45.   ) else if "%%f" equ "May" (
  46.     set FileM=05
  47.   ) else if "%%f" equ "Jun" (
  48.     set FileM=06
  49.   ) else if "%%f" equ "Jul" (
  50.     set FileM=07
  51.   ) else if "%%f" equ "Aug" (
  52.     set FileM=08
  53.   ) else if "%%f" equ "Sep" (
  54.     set FileM=09
  55.   ) else if "%%f" equ "Oct" (
  56.     set FileM=10
  57.   ) else if "%%f" equ "Nov" (
  58.     set FileM=11
  59.   ) else if "%%f" equ "Dec" (
  60.     set FileM=12
  61.   )
  62.   set FileD=10%%g
  63.   set FileD=!FileD:~-2!
  64.   if "!FileM!" equ "%DstMonth%" (
  65.     if "!FileD!" equ "%DstDay%" (
  66.       echo get "%%i"
  67.     )
  68.   )
  69.   endlocal
  70. ))>>"%ftpDown%"
  71. >>"%ftpDown%" echo bye
  72. start ftp -v -i -s:"%ftpDown%" %ftpIP%
  73. goto :eof
  74. :DateToDays %yy% %mm% %dd% days
  75. setlocal ENABLEEXTENSIONS
  76. set yy=%1&set mm=%2&set dd=%3
  77. if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
  78. set /a dd=100%dd%%%100,mm=100%mm%%%100
  79. set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
  80. set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
  81. endlocal&set %4=%j%&goto :EOF
  82. :DaysToDate %days% yy mm dd
  83. setlocal ENABLEEXTENSIONS
  84. set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
  85. set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
  86. set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
  87. (if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
  88. endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF
复制代码

[ 本帖最后由 Batcher 于 2009-4-7 22:50 编辑 ]
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

仅凭一句“获取文件不成功”,我无法给你更多的帮助。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表