Batch file 按日期下载文件的ftp命令
我正在使用.bat脚本访问sftp并下载文件。ftp文件夹由许多文件组成,这些文件可以通过YYYYMMDD格式的文件名进行唯一标识。例如:20180307.csv,20180306.csv等。目前我正在使用mget获取所有文件,然后在稍后本地过滤它。如何修改脚本以仅在今天获取文件 这是我的.bat脚本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
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?我已经在我的答案中添加了一个编辑以满足您的新请求。然而,请注意,这个新的请求在技术上是一个新问题,因此应该作为一个问题发布。