嗨,我对WinSCP和Batch完全陌生。我已经找到了一个脚本,可以将文件夹从SFTP站点传输到我的计算机,但只想从服务器中获取最新文件。
这是我希望安排运行的自动化过程,而不必手动更新。
@echo off
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="C:\Users\xxxxxx\Desktop\WinSCP.log" /ini=nul ^
/command ^
"open sftp://User:PW@Location.org/ -hostkey=""ssh-dss 1024 /xx/xxxxx/xxxxx=""" ^
"cd /" ^
"lcd C:\Users\xxxxxx\Desktop" ^
"get folder1" ^
"get folder2"^
"get folder3"^
"exit"
set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)
但是,我要进入每个文件夹,而只提取最新文件而不是整个文件夹,因为我的历史记录比服务器上仍存储的历史记录更早。
任何帮助-甚至为我指向一篇有关如何使用WinSCP和Batch的好文章,都将不胜感激。
答案 0 :(得分:0)
使用-latest
switch of the get
command:
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="C:\Users\xxxxxx\Desktop\WinSCP.log" /ini=nul ^
/command ^
"open sftp://User:PW@Location.org/ -hostkey=""ssh-dss 1024 /xx/xxxxx/xxxxx=""" ^
"cd /" ^
"lcd C:\Users\xxxxxx\Desktop" ^
"get -latest folder1/*" ^
"get -latest folder2/*"^
"get -latest folder3/*"^
"exit"
WinSCP网站上实际上有一篇专门介绍Downloading the most recent file的文章。