批处理文件生成WinSCP命令以获取特定日期和时间之间的所有文件

时间:2014-09-22 14:02:46

标签: scripting wildcard winscp

我有一个批处理文件,用于创建从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 * >%dt% 07:00:00, <%dt%08:00:00>>myscript.txt

的行

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

如果有人可以重新编写一行来获取某个日期和时间之间的所有文件,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

  • WinSCP file mask:&#34;&#34;之后应该没有逗号。 &#34;之前&#34;限制。
    面具应该是这样的:
    * >2014-09-22 07:00:00 <2014-09-22 08:00
    (请注意,><之前的空格是可选的)
  • WinSCP get command:包含空格的蒙版必须用双引号括起来,因此它被解释为一个蒙版:
    get "* >2014-09-22 07:00:00 <2014-09-22 08:00"
  • Windows echo命令:><被解释为输入输出重定向。实际上通过上面的双引号解决了什么。如果没有双引号,您可以使用^
  • 来逃避它们

完整的命令是:

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

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