如何使用批处理文件将文件夹中的新文件复制到 FTP 位置?

Int*_*ked 2 ftp windows-explorer batch-file

SuperUser 有很多关于将单个文件上传到 FTP 服务器的问题,但关于上传整个文件夹的问题并不多,所以我怀疑这是一个重复的问题。

我不使用 FTP 客户端 - 我总是像使用 Windows 资源管理器访问任何文件夹一样访问我的 FTP 服务器。在我进行身份验证后,我可以像浏览常规目录一样浏览我网站的内容。

通常,当我想在我的网站上编辑某些内容时,我会登录到 FTP 目录,将我要编辑的文件复制到我的Downloads文件夹(可以是任何本地文件夹,我觉得很简单),编辑我需要的内容,然后将其移动/复制回来。我只有一个小型网站,而且我自己从头开始编写了所有代码,因此我无需担心服务器端的任何事情。

过去,我曾尝试使用批处理文件自动登录到 FTP 服务器并public-html在资源管理器窗口中打开,但我无法使其正常工作。我想知道是否有可能在一个独立的批处理文件中将所有新的/更改的文件从映射网络驱动器中的特定文件夹复制到 FTP 服务器中的相应文件夹。我假设我可以ftp://server.com/public_html/folder/folder用作路径,而 Windows 将为此使用资源管理器。如果它也可以登录到服务器,那会很有帮助,但我可以手动登录。

否则,将我更改的每个文件从我的测试区域手动复制到FTP服务器是非常麻烦的。

PowerShell 或 VBS 脚本也适合我;我只需要能够开发一个没有任何依赖项的自包含文件(即我不想安装客户端或任何软件包)。

我可以很容易地编写一个脚本来将文件从一个映射驱动器复制到本地磁盘上的文件夹,但我不知道为什么 FTP 应该有所不同。

Gen*_*GDK 7

您在帖子中提到的所有操作都可以使用 WinSCP 脚本自动执行。你试过WinSCP 吗? 它功能强大且免费,并提供大量支持。下面是您的操作的示例脚本:

# Connect
open ftp://user:password@example.com/ 
# Change remote directory
cd /home/user
# Force binary mode transfer
option transfer binary
# Download file to the local directory d:\
get examplefile.txt d:\
# This will Upload whole folder files and subfolders to current working directory
put d:\
# Disconnect
close
# Exit WinSCP
exit
Run Code Online (Sandbox Code Playgroud)

然后您只需从批处理文件中调用脚本。