我正在尝试使用用户名mark123和密码testabc将目录“C:\ Documents \ Client \”创建到一个FTP(如ftp.tester123.com.au)的批处理文件到本地目录“C:\桌面\ GoHere \”。
该脚本是将此ftp目录中的所有文件复制到本地计算机。我已经阅读了以下msdn教程 https://support.microsoft.com/en-gb/kb/96269
但它对我目前的问题没有帮助。 winscp允许我执行此任务并为其创建批处理文件吗?我想自动执行这个目录 - 比如每晚午夜。这可能吗?
或者我非常熟悉.NET,winSCP有一个包装器,允许你编写C#而不是标准脚本。如果我使用.NET方法,我可以创建一个简单的.exe文件或批处理文件,可以通过双击来执行吗?
提前致谢!
答案 0 :(得分:1)
你要做的是一项非常简单的任务。你缺少的是对任务的概念性理解。因此,很难给出一个对您有帮助的答案,因为很难理解您缺少哪些知识来完成它。
最简单的方法是利用WinSCP的能力generate a transfer code:
您将获得Generate transfer code dialog。
在那里,您可以选择是否要将WinSCP设为generate a WinSCP script or even complete Windows batch file:
(这些是来自WinSCP文档的官方截图。所以他们显示SFTP上传,而不是FTP下载)
现在您已准备好批处理文件或C#可执行文件,您可以schedule it to be run using Windows Scheduler。
答案 1 :(得分:1)
如果已安装WinSCP,则以下代码将为您工作。我从特定文件夹中提取了所有文件,并将其下载到本地文件夹中。一路写了一个日志文件。您也可以使用WinSCP生成此代码。
@echo off
set mydate=%date:~10,4%%date:~7,2%%date:~4,2%
set d_name=/export/home/sysm/opt/oss/server/var/fileint/pm/pmexport_%mydate%
#echo %d_name%
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="C:\Users\HP\Desktop\Datacom\Reports\WinSCP.log" /ini=nul ^
/command ^
"open sftp://YOUR_USERNAME:YOUR_PASSWORD@FTP_SERVER_IP/ -hostkey=""ssh-rsa 1024 PUuYRVADKXB9j1Si+o89v2fsrsr7w2ZrV3NIqdz6kus0GtY=""" ^
"cd %d_name%" ^
"lcd C:\Users\HP\Desktop\Datacom\Reports\Test_ftp" ^
"get *" ^
"exit"
set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)
exit /b %WINSCP_RESULT%
根据需要对其进行修改,然后将代码放入.bat文件中。稍后,您可以手动执行它或使用Windows Task Scheduler。