Windows 将目录上载到ftp服务器的批处理文件

Windows 将目录上载到ftp服务器的批处理文件,windows,batch-file,ftp,Windows,Batch File,Ftp,我的编程背景通常局限于嵌入式C或汇编,而且我在编写(看起来应该很简单的)批处理文件时遇到了困难 我正在尝试编写一个脚本,将整个目录上载到FTP服务器,并替换上面的现有目录。我以前编辑过批处理文件,但我从来没有自己创建过一个,所以如果我有一个简单的错误,请原谅 为了替换服务器上的文件夹,我打算删除现有的文件夹(我还不知道怎么做),然后上传文件夹。然而,由于下面的代码是我从互联网上收集的,我无法上传整个目录 @echo off echo user USERNAME> ftpcmd.dat ec

我的编程背景通常局限于嵌入式C或汇编,而且我在编写(看起来应该很简单的)批处理文件时遇到了困难

我正在尝试编写一个脚本,将整个目录上载到FTP服务器,并替换上面的现有目录。我以前编辑过批处理文件,但我从来没有自己创建过一个,所以如果我有一个简单的错误,请原谅

为了替换服务器上的文件夹,我打算删除现有的文件夹(我还不知道怎么做),然后上传文件夹。然而,由于下面的代码是我从互联网上收集的,我无法上传整个目录

@echo off
echo user USERNAME> ftpcmd.dat
echo PASSWORD>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo put "C:\Dropbox\Capacity Energy\Partners\EMC2\FTP to Portal\2016-2017 Projects" >> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat FTPSERVER
del ftpcmd.dat

非常感谢您的建议

这看起来非常类似,只是不是重复,他只是想做几乎相同的事情。是的,使用
mput
而不是
put
。您还需要一个通配符<代码>..\2016-2017项目\*“我想。我无法测试,但我认为您可能还需要在
ftp
命令中使用
-I
开关。也许添加
-i
可以让您
del*
。最后一点建议是,每次执行ftpcmd.dat或ftpcmd.dat时,您都会关闭文件,然后重新打开以进行附加。您只需
>ftpcmd.dat(echo用户用户名\n echo密码\n echo cd/path/to/dir\n等)
(用新行替换每个
\n
),
echo
将多行内容放入单个文件创建会话。@rojo-您可以使用
mdel*
删除所有内容。放置echo(无重定向)进入一个单独的bat文件makeftpscript.bat并调用它,重定向输出:call makeftpscript>ftpcmd.dat您还需要一张bin后的cd,否则您将上载到用户根目录,这可能不是您的意图。谢谢大家。我真的很接近,我有一切上传,但我有麻烦更换现有的目录。我正在使用rmdir尝试在上传新版本之前删除它。当我打电话给rmdir时,它说“550'/PART/AutoUpload'not deleted:Operation is successful.”这让我很困惑,如果它不删除它,它就不会成功。这看起来非常类似,只是它不是重复的,他只是尝试做几乎相同的事情。是的,使用
mput
而不是
put
。您还需要一个通配符<代码>..\2016-2017项目\*“我想。我无法测试,但我认为您可能还需要在
ftp
命令中使用
-I
开关。也许添加
-i
可以让您
del*
。最后一点建议是,每次执行ftpcmd.dat或ftpcmd.dat时,您都会关闭文件,然后重新打开以进行附加。您只需
>ftpcmd.dat(echo用户用户名\n echo密码\n echo cd/path/to/dir\n等)
(用新行替换每个
\n
),
echo
将多行内容放入单个文件创建会话。@rojo-您可以使用
mdel*
删除所有内容。放置echo(无重定向)进入一个单独的bat文件makeftpscript.bat并调用它,重定向输出:call makeftpscript>ftpcmd.dat您还需要一张bin后的cd,否则您将上载到用户根目录,这可能不是您的意图。谢谢大家。我真的很接近,我有一切上传,但我有麻烦更换现有的目录。我正在使用rmdir尝试在上传新版本之前删除它。当我调用rmdir时,它说“550'/PART/AutoUpload'未删除:操作成功…”这让我很困惑,如果不删除它,它就不会成功。