ftp 按日期下载文件的命令
ftp command to download file by date
我正在使用 .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 Off
CD /D D:\myTargetFolder 2>Nul || Exit /B
Set "csv="
For /F "Tokens=1-3 Delims=/ " %%A In ('RoboCopy /NJH /L "\|" Null'
) Do If Not Defined csv Set "csv=%%A%%B%%C.csv"
( Echo cd /myFTPSourceFolder
Echo mget %csv%
Echo bye)>"mySftpScript.ftp"
psftp user@sftp.myftpserver.com -pw password -b mySftpScript.ftp
::Del "mySftpScript.ftp"
我已经注释掉了最后一行,如果你想删除动态创建的ftp脚本,请从中删除::
。
编辑
要获取昨天的日期 csv,然后像这样,利用 PowerShell,我的建议是:
@Echo Off
CD /D D:\myTargetFolder 2>Nul || Exit /B
Set "csv="
For /F UseBackQ %%A In (
`PowerShell "(Get-Date).AddDays(-1).ToString('yyyMMdd')"`
) Do Set "csv=%%A.csv"
( Echo cd /myFTPSourceFolder
Echo mget %csv%
Echo bye)>"mySftpScript.ftp"
psftp user@sftp.myftpserver.com -pw password -b mySftpScript.ftp
::Del "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 Off
CD /D D:\myTargetFolder 2>Nul || Exit /B
Set "csv="
For /F "Tokens=1-3 Delims=/ " %%A In ('RoboCopy /NJH /L "\|" Null'
) Do If Not Defined csv Set "csv=%%A%%B%%C.csv"
( Echo cd /myFTPSourceFolder
Echo mget %csv%
Echo bye)>"mySftpScript.ftp"
psftp user@sftp.myftpserver.com -pw password -b mySftpScript.ftp
::Del "mySftpScript.ftp"
我已经注释掉了最后一行,如果你想删除动态创建的ftp脚本,请从中删除::
。
编辑
要获取昨天的日期 csv,然后像这样,利用 PowerShell,我的建议是:
@Echo Off
CD /D D:\myTargetFolder 2>Nul || Exit /B
Set "csv="
For /F UseBackQ %%A In (
`PowerShell "(Get-Date).AddDays(-1).ToString('yyyMMdd')"`
) Do Set "csv=%%A.csv"
( Echo cd /myFTPSourceFolder
Echo mget %csv%
Echo bye)>"mySftpScript.ftp"
psftp user@sftp.myftpserver.com -pw password -b mySftpScript.ftp
::Del "mySftpScript.ftp"