FTP目录上传

时间:2015-02-28 05:45:18

标签: batch-file file-upload ftp server remote-access

我会尝试快速简单地做到这一点。很难搜索有关某些内容的信息,而不是100%肯定你会如何搜索它。

所以我有一个小批量脚本创建来执行powershell ftp访问并登录我和所有有趣的东西。

基本上,当我需要心跳时,将文件上传到我的FTP服务器是个cron工作。

我有HOME服务器,并定期或在被告知时,我希望我的脚本能够执行并能够将目录从我的HOME服务器上传到REMOTE ftp服务器。

这是我正在使用的脚本。

@echo off<br>
echo user yourusername> ftpcmd.dat<br>
echo yourpassword>> ftpcmd.dat<br>
echo bin>> ftpcmd.dat<br>
echo cd \folder>> ftpcmd.dat<br>
echo put %1>> ftpcmd.dat<br>
ftp -n -s:ftpcmd.dat yourservername<br>

所以我收集了把%1 = filetoupload

所以filename.bat(脚本)filetoupload =把%1但它给我的错误说

说:所以把我:\ Documents 返回:打开本地文件I:\ Documents

时出错

FTP服务器上的本地?或在我的HOME服务器上本地。

我如何制作它以便我可以将所选目录从我的HOME服务器上传到FTP REMOTE服务器而不是逐个文件???

非常感谢你

1 个答案:

答案 0 :(得分:2)

我假设%1这里指的是通过FTP上传的目录。您可以使用批处理for函数/关键字来添加许多put指令,这些指令对应于上传目录中的文件。

例如:

@echo off

echo user yourusername> ftpcmd.dat
echo yourpassword>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo cd \folder>> ftpcmd.dat

for %%f in (%1\*.*) do echo put "%%f">> ftpcmd.dat

ftp -n -s:ftpcmd.dat yourservername

和递归版:

@echo off

echo user yourusername> ftpcmd.dat
echo yourpassword>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo cd \folder>> ftpcmd.dat

for /R %1 %%f in (*.*) do echo put "%%f">> ftpcmd.dat

ftp -n -s:ftpcmd.dat yourservername