我会尝试快速简单地做到这一点。很难搜索有关某些内容的信息,而不是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服务器而不是逐个文件???
非常感谢你
答案 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