在 Windows 上使用批处理文件上传带有 cURL 和 FTP 的文件夹?

Jas*_*vis 1 ftp windows-7 curl batch-file

我正在尝试将整个文件夹(包括它的子文件夹和文件)从 Windows 批处理 (.bat) 文件上传到我服务器上的文件夹。

以下是我对上传部分的命令...

curl -T E:\Server\bootstrap3\_gh_pages\ -u USER:PASSWORD ftp://domain.com/bootstrap/
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

curl: Can't open 'E:\Server\bootstrap3\_gh_pages\'!
curl: try 'curl --help' for more information
Run Code Online (Sandbox Code Playgroud)

如果我尝试只做 1 个文件,它工作正常,我需要以某种方式循环并执行所有文件夹和文件,请问有什么帮助吗?

我在谷歌上搜索并尝试了几个不太好的例子,但在这个确切的问题上还没有运气

小智 6

问题是 curl 不循环遍历目录,没有上传整个目录的选项,它不支持 *-expansion。所以我最终的解决方案是编写一个 .bat 脚本。借助此答案/sf/answers/660098981/

@echo off 
set localdir=C:\something
set ftphost=your.ftp.host.com
set ftpuser=yourftpuser
set ftppass=yourftppassword
set ftpdir=target/directory/on/server

setlocal enableDelayedExpansion

for /F %%x in ('dir /B/D %localdir%') do (
  set FILENAME=%localdir%\%%x
  curl -T !FILENAME! ftp://%ftphost%/%ftpdir%/ --user %ftpuser%:%ftppass%
)
Run Code Online (Sandbox Code Playgroud)