Batch file 按日期下载文件的ftp命令

Batch file 按日期下载文件的ftp命令,batch-file,ftp,sftp,Batch File,Ftp,Sftp,我正在使用.bat脚本访问sftp并下载文件。ftp文件夹由许多文件组成,这些文件可以通过YYYYMMDD格式的文件名进行唯一标识。例如:20180307.csv,20180306.csv等。目前我正在使用mget获取所有文件,然后在稍后本地过滤它。如何修改脚本以仅在今天获取文件 这是我的.bat脚本 D: CD\myTargetFolder psftp user@sftp.myftpserver.com -pw password -b mySftpScript.ftp

我正在使用.bat脚本访问sftp并下载文件。ftp文件夹由许多文件组成,这些文件可以通过YYYYMMDD格式的文件名进行唯一标识。例如:20180307.csv,20180306.csv等。目前我正在使用mget获取所有文件,然后在稍后本地过滤它。如何修改脚本以仅在今天获取文件

这是我的.bat脚本

    D:
    CD\myTargetFolder
    psftp user@sftp.myftpserver.com -pw password -b mySftpScript.ftp
    exit
这是我的ftp脚本

    cd /myFTPSourceFolder
    mget *.csv
    bye

谢谢。

如果您不介意动态创建ftp脚本,那么您的.bat脚本可能如下所示:

@Echo关闭
CD/D:\myTargetFolder 2>Nul | |退出/B
设置“csv=”
对于('RoboCopy/NJH/L“\\\|”Null'中的/F“Tokens=1-3 Delims=/”%%A
)如果未定义csv,则不要设置“csv=%%A%%B%%C.csv”
(Echo cd/myFTPSourceFolder
回显管理%csv%
回音(再见)>“mySftpScript.ftp”
psftpuser@sftp.myftpserver.com-pw密码-b mySftpScript.ftp
::Del“mySftpScript.ftp”
我已经注释掉了最后一行,如果要删除动态创建的ftp脚本,请从中删除

    cd /myFTPSourceFolder
    mget *.csv
    bye
编辑

要获得昨天的csv数据,我建议使用类似这样的工具,即PowerShell:

@Echo关闭
CD/D:\myTargetFolder 2>Nul | |退出/B
设置“csv=”
对于/F UseBackQ%%A In(
`PowerShell“(获取日期).AddDays(-1).ToString('yyyMMdd')”`
)是否设置“csv=%%A.csv”
(Echo cd/myFTPSourceFolder
回显管理%csv%
回音(再见)>“mySftpScript.ftp”
psftpuser@sftp.myftpserver.com-pw密码-b mySftpScript.ftp
::Del“mySftpScript.ftp”

Hi。我如何修改它以获得昨天日期csv?我已经在我的答案中添加了一个编辑以满足您的新请求。然而,请注意,这个新的请求在技术上是一个新问题,因此应该作为一个问题发布。