[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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

感谢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

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

TOP

不是很理解,愿闻其详。

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

小弟不才,对batch的功能还不太了解。麻烦各位高手解答一下主体的程序!

TOP

原帖由 Batcher 于 2009-8-14 22:32 发表
%time:~11,2% %time:~14,2%这里对时间的截取是错的,如果你还没有搞清楚字符串截取的方法,可以参考以下几个帖子:

set截取字符详解
http://bbs.bathome.net/viewthread.php?tid=996

set变量字符截取点点通
h ...

难道时间格式不是 2009 08 15 08:23 这样的形式么?获取的结果不是%date:~11,2% %date:~14,2%这样的么?
是不是我需要分别获得日期的时间和分钟的时间?象以下这样的格式?
  1. set FileY=%date:~0,4%
  2. set FileN=%time:~0,2%
  3. call :DateToMins %date:~0,4% %date:~5,2% %date:~8,2% %time:~0,2% %time:~3,2% %time:~6,2% Mins
复制代码

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

TOP

那应该怎么取?我设2个变量?
能不能举个例子?
我通过以下代码获得的时间信息,不知道这样对不对:
  1. C:\Documents and Settings\usr>echo %date:~0,4% %date:~5,2% %date:~8,2% %time:~0,
  2. 2%:%time:~3,2%
  3. 2009 08 16  9:20
复制代码

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

TOP

以下是程序及输出结果,但是我还是没有获得时间信息文件。请问batcher怎么修改?

[ 本帖最后由 lazygc520 于 2009-8-19 10:19 编辑 ]

TOP

回复 22楼 的帖子

唉,问题是后继无人啊!

TOP

返回列表