【问题标题】:Batch file to generate WinSCP command to get all files between a certain date and time批处理文件生成 WinSCP 命令以获取某个日期和时间之间的所有文件
【发布时间】:2014-11-16 12:48:35
【问题描述】:

我有一个批处理文件,它创建了一个从 WinSCP 运行的脚本文件:

@ECHO OFF

SET /P password="Enter root password: "

ECHO. 
cd HSBC

SET /P dt="Enter DATE (yyyy-mm-dd) : "

ECHO option batch abort>>myscript.txt
ECHO option confirm off>>myscript.txt
ECHO open %password%>>myscript.txt
ECHO cd /jbc/T24/UKMPE/bnk/bnk.data/eb/"&HOLD&">>myscript.txt
ECHO get * >%dt% 07:00:00, <%dt%08:00:00>>myscript.txt
ECHO exit>>myscript.txt

c:\"program files"\winscp\winscp.com /script=myscript.txt

del myscript.txt

ECHO.
ECHO.

问题是包含ECHO get * &gt;%dt% 07:00:00, &lt;%dt%08:00:00&gt;&gt;myscript.txt的行

它应该是获取某个日期和时间之间所有文件的命令。

如果有人可以重写行以获取特定日期和时间之间的所有文件,将不胜感激。

【问题讨论】:

    标签: scripting wildcard winscp


    【解决方案1】:

    您并没有具体说明,您面临的问题是什么。所以只能猜测,问题是,你有错误的语法:

    • WinSCP file mask:“after”和“before”约束之间不应有逗号。
      掩码应该是:
      * &gt;2014-09-22 07:00:00 &lt;2014-09-22 08:00
      (注意&gt;&lt;前面的空格是可选的)
    • WinSCP get command: 包含空格的掩码必须用双引号括起来,所以它被解释为一个掩码:
      get "* &gt;2014-09-22 07:00:00 &lt;2014-09-22 08:00"
    • Windows echo 命令:&gt;&lt; 被解释为输入输出重定向。上面的双引号实际上解决了什么问题。如果没有任何双引号,您可以使用 ^ 转义它们。

    完整的命令是:

    ECHO get "* >%dt% 07:00:00 <%dt% 08:00:00" >>myscript.txt
    

    旁注:open %password% 看起来也不正确。 open commandsession URL 作为参数,而不仅仅是密码。

    【讨论】:

      猜你喜欢
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2015-02-28
      • 1970-01-01
      相关资源
      最近更新 更多