【问题标题】:Uploading file to FTP server in a particular folder location将文件上传到特定文件夹位置的 FTP 服务器
【发布时间】:2016-10-09 19:21:05
【问题描述】:

我正在使用批处理文件将文件上传到远程服务器(例如 123.45.678.90),并且日志显示文件已成功传输。

而在该服务器 (123.45.678.90) 中,我无法找到该文件。 请建议我如何将文件传输到服务器中的特定文件夹 [D:\SuccessTransaction]。

@echo off
ping 127.0.0.1 -n 20 -w 60000 > nul

del ftpcmd.dat

echo user myuser>> ftpcmd.dat
echo mypassword>> ftpcmd.dat
echo BINARY>> ftpcmd.dat
echo put D:\Files\Success*.csv>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat 123.45.678.90 >> FileUploadLog.txt
del ftpcmd.dat

【问题讨论】:

  • 您知道Success*.csv 只上传单个文件,而不是所有匹配掩码的文件吗?
  • 是的,它上传一个文件。使用星号是因为在 Success 之后,今天的日期会附加到文件名。每天将一个文件放在 D:\Files\ 中。

标签: batch-file file-upload ftp


【解决方案1】:

put 命令采用可选的第二个参数,您可以在其中指定目标路径。

虽然您必须知道 FTP 路径。您不能使用本地 Windows 路径(服务器的本地路径)。

因此,例如,如果D:\ 是 FTP 根,则D:\SuccessTransaction 的 FTP 路径将类似于 /SuccessTransaction

那么put 命令会是这样的:

put D:\Files\Success*.csv /SuccessTransaction/Success.csv

如果要保留更改的源名称,则需要使用cdmput

cd /SuccessTransaction
mput D:\Files\Success*.csv

【讨论】:

  • 非常感谢。现在我可以将文件上传到服务器中所需的文件夹位置。