Windows FTP将所有文件从一个目录复制到本地目录

Windows FTP将所有文件从一个目录复制到本地目录,windows,batch-file,ftp,winscp,winscp-net,Windows,Batch File,Ftp,Winscp,Winscp Net,我正在尝试创建一个批处理文件,使用用户名mark123和密码testabc将FTPs转换为URLsay ftp.tester123.com.au目录C:\Documents\Client\的本地目录C:\Desktop\GoHere\ 脚本将此ftp目录中的所有文件复制到我的本地计算机。我已经阅读了以下msdn教程 但这对我目前的问题没有帮助。winscp是否允许我执行此任务并为其创建批处理文件?我想自动执行这个目录——比如说每晚午夜。这可能吗 或者,我非常熟悉.NET,winSCP有一个包装

我正在尝试创建一个批处理文件,使用用户名mark123和密码testabc将FTPs转换为URLsay ftp.tester123.com.au目录C:\Documents\Client\的本地目录C:\Desktop\GoHere\

脚本将此ftp目录中的所有文件复制到我的本地计算机。我已经阅读了以下msdn教程

但这对我目前的问题没有帮助。winscp是否允许我执行此任务并为其创建批处理文件?我想自动执行这个目录——比如说每晚午夜。这可能吗

或者,我非常熟悉.NET,winSCP有一个包装器,允许您编写C而不是标准脚本。如果我使用.NET方法,我可以创建一个简单的.exe或批处理文件,只需双击即可执行吗

提前谢谢

你要做的是一件非常琐碎的事情。您缺少的是对任务的概念性理解。因此,很难给你一个有助于你的答案,因为很难理解你在完成它时缺少了什么知识

开始时最简单的方法是利用WinSCP功能:

使用WinSCP登录FTP服务器; 导航到源远程目录和目标本地目录; 选择要下载所有文件的远程文件?; 使用主菜单中的文件>下载命令或文件关联菜单中的下载命令; 在上,单击“传输设置”按钮上的下拉箭头,然后选择“生成代码”命令。 你会得到那份工作的

在这里,您可以选择是否希望WinSCP:

或:

这些是WinSCP文档中的官方屏幕截图。所以他们显示SFTP上传,而不是FTP下载


现在您已经准备好批处理文件或C可执行文件,您可以了。

如果您已经安装了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任务计划程序。

您有什么具体问题?除了我在回答之前的问题时所显示的批处理文件之外,您还需要什么?将FTPs转换为URL意味着什么。。。目录C:\Documents\Client\。。进入本地目录C:\Desktop\GoHere\。我的意思是主机名是ftp.tester123.com.au。建立到该主机的连接后,我要将主机目录C:\Documents\Client\中的所有文件复制到本地计算机上的本地目录C:\Desktop\GoHere\。您不能在FTP中使用像C:\Documents\Client这样的主机路径。FTP服务器必须能够访问该路径并将其映射到FTP路径。你必须使用FTP路径。好的,那么一旦我映射了FTP路径,如何创建包含复制过程的批处理文件呢?这是可以通过WinSCP内部的GUI或使用.NET包装器来完成的吗?非常感谢您的帮助,这是一个非常好的答案。不过,我有一个问题。我已将生成的代码复制并粘贴到.bat文件中,由于某种原因,当我通过命令行运行.bat文件时,第一行出现错误:C:\Desktop\g此处未识别为内部或外部命令、可操作程序或批处理文件。错误我做错了什么?我是否执行了错误的批处理或其他操作?向我们显示批处理文件。@echo off C:\Users\mark\Desktop\New folder 3\WinSCP.com^/log=C:\writable\path\to\log\WinSCP.log/ini=nul^/command^open^cd/^lcd C:\Users\mkirilow\Documents\New folder 3^get*^exit set WinSCP\u RESULT=%ERRORLEVEL%if%WinSCP\u RESULT%eq 0 echo Success else echo Error exit/b%WINSCP_RESULT%^这是我的批处理文件的内容。文件名:tester.batt批处理文件中没有C:\Desktop\g。所以我不知道你想做什么。显示一个屏幕截图。GoHere目录只是一个示例目录,而不是我要使用的实际目录。代码中的上述目录是我想使用的目录。新folder3已使用filezilla服务器映射。我认为FileZilla的FTP映射可能是导致问题的原因。除了目录之外,用于执行批处理的语法和方法是否正确?请注意,WinSCP有,您可以使用它来代替不可靠的%date%:cd/export/home/sysm/opt/oss/server/var/fileint/pm/pmexport%%timestampyyymmdd%%^我不知道。谢谢你的提醒。