我可以将一个文件上传到 FTP 中的多个域文件夹吗?

我可以将一个文件上传到 FTP 中的多个域文件夹吗?

我想将同一个 index.php 文件上传(并最终覆盖)到多个域文件夹。有没有办法一次性完成此操作或使用快捷方式?

我正在使用 Filezilla。

谢谢

编辑:

由于我对 FTP 命令还不是很熟悉,所以我设法找到了一个 ftp 程序来帮助我实现我想要的功能。它叫做火影忍者。它有一个我可以遵循的示例脚本,最终我得到了类似这样的内容并简单地执行它:

Connect "ftp.site.com", "username", "password"

LocalChDir "D:\folder"

RemoteChDir "public_html/domainfolder1"
Put "file.txt"

RemoteChDir "../domainfolder2"
Put "file.txt"

RemoteChDir "../domainfolder3"
Put "ifile.txt"

Disconnect 

答案1

Windows 答案

这实际上是为 music2myear 的答案提供了一个工作脚本,但没有为 FileZilla 提供。

我曾经使用批处理脚本和一个名为的程序来执行此操作FTP服务器- FileZilla 当时可能不支持命令行,因为我用它做其他所有事情。如果您愿意,应该很容易修改 FileZilla。

@FOR /F "eol=; tokens=1,2,3,4" %%A IN (ftpdetails.txt) DO call ncftpput -u %%A -p %%B %%C %%D %1
@pause

它将从文本文件 ( ftpdetails.txt) 中获取以下格式的目的地:

username password ip destinationfolder ; comment
username2 password2 ip2 destinationfolder2 ; comment2

此修改版本将同时开放所有目的地,但存在泛滥的风险:

@FOR /F "eol=; tokens=1,2,3,4" %%A IN (ftpdetails.txt) DO start ncftpput -u %%A -p %%B %%C %%D %1
@pause

用法是将我想要上传的文件拖到批处理文件的顶部。可以通过打开 %1 将其替换为要上传的文件名。事实上,空格会破坏它。

答案2

filezilla.exe -u “c:\ftp\TestFile.txt” ftp://ftp_user:ftp_password@ftp_host_ip/folderpath -close

Filezilla 可以编写脚本。如果您使用的是 Windows,其内置的 FTP 也可以编写脚本。

只需编写一个脚本,将文件移动到所有所需的主机,并在更新索引文件时运行它。

脚本说明

当您想使用接受命令行参数的程序自动执行任务时,可以通过脚本来实现。

您将需要以下信息:

  • 您想要上传的文件的完整路径。
  • 用户名、密码、服务器 IP 地址或域名以及需要更新的文件的文件夹路径。

如果您已在 FileZilla 中为每个服务器设置了连接配置文件,则可以使用“远程站点”。您可以按名称调用连接配置文件,这样就无需为每个连接输入用户名、密码、服务器和路径。不过,查看文档后,我认为输入信息更简单、更清晰。

在 FileZilla 中,为您想要上传文件的每个服务器创建一个连接配置文件。

打开记事本。输入以下根据您的具体设置和需求更改的文本。将文件另存为(任意名称)。bat。

filezilla.exe -u "<full path to the file on your computer>" ftp://username:password@server/path -close

根据需要添加此行的多个副本:每个要更新的文件一个。

Bob 的回答展示了如何使用循环和源文件来自动化大部分过程。理解循环的语法要困难得多,但他的解决方案可以做同样的事情,而且如果您必须更新大量服务器,它可能更易于管理。

相关内容