递归上传目录(包含目录)到 FTP

我需要将包含其他目录的完整目录从 Windows PC 上传到 FTP。


目前我正在使用 Windows 批处理文件将文件上传到 FTP:


FTP -i -s:upload.ftp

上传.ftp:


open hostname

username

Password

prompt

bin

cd pathonserv/path

prompt

mput localpath/localfolder/*

此代码只上传文件从服务器上的本地文件夹,但本地文件夹而不是文件夹。


我可以使用任何建议。我愿意将语言从 Windows 批处理文件更改为 Python。此外,我在 Windows PC 上启用了 Linux 终端功能。如果代码无需任何额外下载即可运行,也欢迎使用 C++。


安全不是很重要。目前我更喜欢速度而不是安全。我需要一个简单的脚本来将目录(其中包含目录)递归上传到具有用户名和密码的 FTP。


Windows 也是必须的!我不希望有超过 1 个可下载的插件,但即使它有但工作,我也可以接受。


qq_花开花谢_0
浏览 249回答 2
2回答

侃侃无极

只需使用任何其他 Windows 命令行 FTP 客户端即可。大多数支持递归传输。例如对于WinSCP FTP 客户端,您可以使用以下批处理文件:winscp.com /ini=nul /log=upload.log /command ^     "open ftp://username:password@hostname/" ^     "put C:\localpath\localfolder\* /pathonserv/path/" ^     "exit"WinSCP GUI 甚至可以为您生成批处理文件模板。还有一个将Windows FTP 脚本转换为 WinSCP的指南(并不是在这个微不足道的情况下真的需要它)。(我是 WinSCP 的作者)如果您想采用 Python 方式,请检查使用 Python 脚本将文件夹从本地系统上传到 FTP(忽略@monkut 接受的答案,@Edgard 的答案和其他一些更好)。

眼眸繁星

这将是 Autoit 解决方案。;ftp- Upload#include <Array.au3>#include <File.au3>#include <MsgBoxConstants.au3>#include <FTPEx.au3>$initialPath = 'c:\Users\xxx\Downloads\'$fileStructure = _FileListToArrayRec($initialPath, '*', $FLTAR_FILESFOLDERS, $FLTAR_RECUR, $FLTAR_SORT, $FLTAR_FULLPATH);~ _ArrayDisplay($fileStructure)_Example()Func _Example()&nbsp; &nbsp; Local $sServer = '192.168.178.XXX'&nbsp; &nbsp; Local $sUsername = 'admin'&nbsp; &nbsp; Local $sPass = 'xxx'&nbsp; &nbsp; Local $Err, $sFTP_Message&nbsp; &nbsp; Local $hOpen = _FTP_Open('MyFTP Control')&nbsp; &nbsp; Local $hConn = _FTP_Connect($hOpen, $sServer, $sUsername, $sPass, 0, 21, $INTERNET_SERVICE_FTP, $INTERNET_FLAG_PASSIVE)&nbsp; &nbsp; If @error Then&nbsp; &nbsp; &nbsp; &nbsp; MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR=' & @error)&nbsp; &nbsp; Else&nbsp; &nbsp; &nbsp; &nbsp; _FTP_GetLastResponseInfo($Err, $sFTP_Message)&nbsp; &nbsp; &nbsp; &nbsp; ConsoleWrite('$Err=' & $Err & '&nbsp; &nbsp;$sFTP_Message:' & @CRLF & $sFTP_Message & @CRLF)&nbsp; &nbsp; &nbsp; &nbsp; ; do something ...&nbsp; &nbsp; &nbsp; &nbsp; _FTP_DirSetCurrent($hConn, '/ALL')&nbsp; &nbsp; &nbsp; &nbsp; _FTP_DirPutContents($hConn, $initialPath, '/ALL', 1)&nbsp; &nbsp; &nbsp; &nbsp; Sleep(100)&nbsp; &nbsp; &nbsp; &nbsp; _FTP_DirSetCurrent($hConn, '/ALL')&nbsp; &nbsp; &nbsp; &nbsp; Local $aFile = _FTP_ListToArray($hConn, 0)&nbsp; &nbsp; &nbsp; &nbsp; _ArrayDisplay($aFile)&nbsp; &nbsp; EndIf&nbsp; &nbsp; Local $iFtpc = _FTP_Close($hConn)&nbsp; &nbsp; Local $iFtpo = _FTP_Close($hOpen)EndFunc&nbsp; &nbsp;;==>_Example
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python