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

[文本处理] [已解决]从FTP上获取当前时间之前一段时间内信息的批处理

从FTP上获取当前时间之前一段时间内的信息。假设我的FTP上有一个a.txt文件,而且过一段时间FTP上会增加一个类似的*.txt文件,我如何获得本机当前时间的一段时间相应的*.txt文件?

[ 本帖最后由 lazygc520 于 2009-8-24 09:33 编辑 ]
1

评分人数

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

附上我之前的代码,如下的代码得到的是从FTP上获取对应本机时间一天前的相关文件的批处理,我如何修改可获得当天且对应本机现在时间的一段时间之前的对应FTP上的文件信息?假设现在是14:00,我想获得13:00-14:00这段时间内FTP上对应的文件信息。

[ 本帖最后由 lazygc520 于 2009-8-27 15:27 编辑 ]

TOP

或者能不能精确到秒,1小时=3600秒。

TOP

难道没有人会么?我只想知道时间如何获取,程序大体不用修改。

TOP

楼主,不是大家不想回你,因为时间回溯计算是相当复杂的,严格的来说这涉及到闰年的判断(二月天数),长短月的判断(是30天还是31天),时间跨日判断。而论坛关于这方面的贴子实在是不少,楼主为什么不先搜索下呢?
***共同提高***

TOP

这里有现成的计算时间的函数:Ritchie Lawrence 批处理函数库中英文版
http://bbs.bathome.net/thread-3056-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

感谢Batcher提供的关于时间函数的资料,我把代码做了如下修改,但是还是报错,请看看是什么原因?

[ 本帖最后由 lazygc520 于 2009-8-27 15:27 编辑 ]

TOP

  1. (for /f "usebackq tokens=1-9 delims= " %%a in ("%temp%\FileDate.txt") do (
  2.   setlocal enabledelayedexpansion
  3.   if "%%f" equ "Jan" (
  4.     set FileM=01
  5.   ) else if "%%f" equ "Feb" (
  6.     set FileM=02
  7.   ) else if "%%f" equ "Mar" (
  8.     set FileM=03
  9.   ) else if "%%f" equ "Apr" (
  10.     set FileM=04
  11.   ) else if "%%f" equ "May" (
  12.     set FileM=05
  13.   ) else if "%%f" equ "Jun" (
  14.     set FileM=06
  15.   ) else if "%%f" equ "Jul" (
  16.     set FileM=07
  17.   ) else if "%%f" equ "Aug" (
  18.     set FileM=08
  19.   ) else if "%%f" equ "Sep" (
  20.     set FileM=09
  21.   ) else if "%%f" equ "Oct" (
  22.     set FileM=10
  23.   ) else if "%%f" equ "Nov" (
  24.     set FileM=11
  25.   ) else if "%%f" equ "Dec" (
  26.     set FileM=12
  27.   )
  28.   set FileD=10%%g
  29.   set FileD=!FileD:~-2!
  30.   if "!FileM!" equ "%DstMonth%" (
  31.     if "!FileD!" equ "%DstDay%" (
  32.      echo get "%%i" "%DownFolder%\%%i"
  33.     )
  34.   )
  35.   endlocal
  36. ))>>"%ftpDown%"
复制代码
好像这段代码没改对。。。

TOP

回复 8楼 的帖子

当代码有错误,在调试的时候可以去掉@echo off,或者在关键地方加pause,相当于断点调试。

没有太多人会看你的大段的代码,再一个大家没有环境测试你的代码。
(*^_^*)

TOP

希望batcher能够帮我解答一下!!

TOP

你先运行一下这两个命令,再思考一下时间应该怎样截取吧。
  1. echo %date%
  2. echo %time%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

不是很理解,愿闻其详。

TOP

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

TOP

哦。那是不是我应该对以下部分做修改?
  1. set FileY=%date:~0,4%
  2. call :DateToMins %date:~0,4% %date:~5,2% %date:~8,2% %time:~11,2% %time:~14,2% Mins
复制代码
还有如下部分怎么修改?
  1. (for /f "usebackq tokens=1-9 delims= " %%a in ("%temp%\FileDate.txt") do (
  2.   setlocal enabledelayedexpansion
  3.   if "%%f" equ "Jan" (
  4.     set FileM=01
  5.   ) else if "%%f" equ "Feb" (
  6.     set FileM=02
  7.   ) else if "%%f" equ "Mar" (
  8.     set FileM=03
  9.   ) else if "%%f" equ "Apr" (
  10.     set FileM=04
  11.   ) else if "%%f" equ "May" (
  12.     set FileM=05
  13.   ) else if "%%f" equ "Jun" (
  14.     set FileM=06
  15.   ) else if "%%f" equ "Jul" (
  16.     set FileM=07
  17.   ) else if "%%f" equ "Aug" (
  18.     set FileM=08
  19.   ) else if "%%f" equ "Sep" (
  20.     set FileM=09
  21.   ) else if "%%f" equ "Oct" (
  22.     set FileM=10
  23.   ) else if "%%f" equ "Nov" (
  24.     set FileM=11
  25.   ) else if "%%f" equ "Dec" (
  26.     set FileM=12
  27.   )
  28.   set FileD=10%%g
  29.   set FileD=!FileD:~-2!
  30.   if "!FileM!" equ "%DstMonth%" (
  31.     if "!FileD!" equ "%DstDay%" (
  32.      echo get "%%i" "%DownFolder%\%%i"
  33.     )
  34.   )
  35.   endlocal
  36. ))>>"%ftpDown%"
复制代码
你能不能帮我改下,我比较一下看看是否正确?

[ 本帖最后由 lazygc520 于 2009-8-14 11:13 编辑 ]

TOP

batcher,你能否对这个程序解释一下?

TOP

返回列表