使用批处理文件中的 WinSCP 从 FTP 服务器下载今天的文件失败 "Mask is invalid near '=today'"

Downloading today's file from FTP server using WinSCP from batch file fails with "Mask is invalid near '=today'"

我有一个批处理文件,它接收一个参数,然后将该参数传递给调用 WinSCP 来下载文件的文本脚本文件。

我的目标是下载今天的文件。

如果文本脚本文件中没有 >=today,我可以下载该文件 >=today

我需要更改什么才能下载今天的文件(如果存在)?

批处理文件

set arg1=%1
set CurrentPath=C:\Temp\

rem drive
c:

rem folder do WinSCP
cd C:\Program Files (x86)\WinSCP

rem Download file
winscp.exe /console /script=%CurrentPath%sftp.txt /parameter %arg1%

文本脚本文件

option batch abort
option confirm off 

# Connect
open <.....> 

# Download file to
get %1%>=today "C:\Temp\"

# Disconnect
close

我遇到的错误:

Mask is invalid near '=today'

我不认为这是关于传递参数。

但是 today keyword 是一个“最新”功能(2018 年 10 月的 WinSCP 5.14)。所以你可能有不支持它的旧版本 WinSCP。


如果您没有支持today的WinSCP版本,您可以使用%TIMESTAMP% pattern:

get %1%>=%TIMESTAMP#yyyy-mm-dd% "C:\Temp\"

虽然你应该始终使用最新版本的 WinSCP,但如果你想保持安全。

替换

原样

# Download file to
get %1%>=today "C:\Temp\"

未来

# Download file to
get -filemask= %1%"*>1D" "C:\Temp\"