最近在研究dos命令,制作bat脚本。遇到了一个瓶颈。在打开ftp后,由于本地文件已经分好类,如果用mput上传的话,会将所有目录中的文件混放在ftp内。所以想问一下如何把本地分好类的文件夹,一整个上传?
不知道你这个问题是否已经解决, 如果还没有解决的话:首先,我们可以使用ftp
命令行工具来上传整个目录及其文件至FTP服务器。以下是一个示例的批处理脚本,用于实现这个功能:
@echo off
setlocal
set "ftpServer=your_ftp_server" // 替换为你的FTP服务器地址
set "ftpUsername=your_ftp_username" // 替换为你的FTP用户名
set "ftpPassword=your_ftp_password" // 替换为你的FTP密码
set "localDirectory=your_local_directory" // 替换为你要上传的本地目录路径
set "remoteDirectory=your_remote_directory" // 替换为你要上传至FTP的远程目录路径
echo open %ftpServer%> ftpscript.txt
echo %ftpUsername%>> ftpscript.txt
echo %ftpPassword%>> ftpscript.txt
echo lcd %localDirectory%>> ftpscript.txt
echo cd %remoteDirectory%>> ftpscript.txt
echo binary>> ftpscript.txt
echo prompt n>> ftpscript.txt
echo mput *.*>> ftpscript.txt
echo quit>> ftpscript.txt
ftp -s:ftpscript.txt
del ftpscript.txt
endlocal
上述批处理脚本中,需要你替换以下变量的值: - ftpServer
:你的FTP服务器地址 - ftpUsername
:你的FTP用户名 - ftpPassword
:你的FTP密码 - localDirectory
:你要上传的本地目录路径 - remoteDirectory
:你要上传至FTP的远程目录路径
请确保你已将以上脚本中的这些变量替换为正确的值。
此脚本使用了一个临时文件ftpscript.txt
来存储FTP命令。它首先打开FTP连接,然后输入用户名和密码进行认证。之后,将本地目录设置为当前工作目录,将远程目录设置为FTP服务器上的目标目录。最后,使用mput
命令上传所有文件至FTP服务器。上传完成后,关闭FTP连接并删除临时文件。
请注意,此脚本假设你已经安装了ftp
命令行工具,并且将其添加到了系统的环境变量中。如果没有安装或配置ftp
命令,需要先进行安装和配置操作。
希望这个解决方案能够帮助到你。如果还有其他问题,请随时提问。
使用mget和mput命令可以上传和下载整个文件夹。
参考ChatGPT的回答
如果您想一次性将本地分好类的文件夹整个上传到FTP服务器上,可以使用FTP客户端的mput
命令的递归选项。这样,mput
命令会将整个文件夹及其子文件夹上传到FTP服务器,而不会混放在一起。
具体步骤如下:
打开FTP客户端并连接到FTP服务器。
使用lcd
命令设置本地文件夹的目录,例如:lcd C:\path\to\your\local\folder
使用cd
命令切换到FTP服务器上要上传的目标文件夹,例如:cd /path/to/your/ftp/folder
使用mput
命令上传整个文件夹及其子文件夹,带上递归选项-r
,例如:mput -r *
请注意,在使用mput -r *
上传文件夹时,FTP客户端会将本地文件夹及其子文件夹的内容一起上传到FTP服务器指定的目标文件夹内,而不会混放在一起。确保您已经选择了正确的目标文件夹,以免覆盖原有的文件。
另外,不同的FTP客户端可能略有不同的命令语法,请查阅您使用的FTP客户端的文档或帮助手册,以确保正确使用mput
命令的递归选项。