【发布时间】:2016-11-04 18:28:51
【问题描述】:
我正在登录 Adrive.com 帐户以上传备份文件。我不知道安装的linux版本。我尝试使用以下命令获取版本:
ftp> uname -r
Invalid command.
ftp> cat /etc/*-release
Invalid command.
ftp> lsb_release -a
Invalid command.
ftp> cat /proc/version
Invalid command.
ftp> uname -a
Invalid command.
如您所见,它们都不起作用。
这是我正在尝试运行的脚本:
ECHO open ftp://xxx:xxxx@ftp.adrive.com>FTPSND.TXT
echo cd backup>>FTPSND.TXT
echo cd companyfiles>>FTPSND.TXT
echo mkdir %3>>FTPSND.TXT
echo cd %3>>FTPSND.TXT
echo option transfer binary>>FTPSND.TXT
ECHO send %1>>FTPSND.TXT
ECHO close>>FTPSND.TXT
ECHO exit>>FTPSND.TXT
winscp.com /script=ftpsnd.txt >>%2
mkdir 上发生的错误:
Error creating folder 'BEL'.
File or directory already exists.
(A)bort, (R)etry, (S)kip: Abort
我的主要问题是,如果目录不存在,我需要创建它,否则我跳过这一步并继续发送。
有什么想法可以解决这个问题吗?
编辑
回应 Hackoo:
我没有提到这个批处理文件是从另一个接近结尾的批处理文件中调用的。当我使用您的代码时,我没有上传文件并且日志显示:
ftp> Open ftp.adrive.com
Connected to ftp.adrive.com.
220 Username is your email address used for web interface
User (ftp.adrive.com:(none)):
331 Username OK, please send password.
230 Welcome xxxxx
ftp> prompt n
Interactive mode Off .
ftp> bin
200 TYPE changed to I.
ftp> MkDir /backup/companyfiles/IFC
550 File or directory already exists.
ftp> cd /backup/companyfiles/IFC
250 Changed directory OK.
ftp> mput D:\SSSAVES\sssbackup\TMPDIR\IFC_20160705141154.ZIP
200 PORT command OK.
150 Opening BINARY mode data connection for file IFC_20160705141154.ZIP.
它并没有从这一点移动并做任何事情。我让它在那里坐了2个小时只是为了确保。该文件只有 70mb 大小,所以我怀疑它需要那么长时间。
编辑#2
该文件最终确实出现在 Adrive 上,所以我相信 ftp mput 可以正常工作。只是发送后似乎没有释放
编辑#3
我确实将它从 mput 更改为 put,因为我只发送 1 个文件。这并没有什么不同。
【问题讨论】:
-
为什么需要知道主机运行的是什么操作系统?
-
@SomethingDark 知道如何处理 ftp 命令,所以我会知道我的选择是什么。
-
if not exist %3 mkdir %3 -
@Aacini Ty 回复。当我尝试这个时,我得到了
ftp> if not exist %3 mkdir %3Invalid command. -
@Aacini Ty 回复。与我从 ftp 命令行运行它的方式以及您建议我运行它的方式没有任何区别。我确实把它放在我的脚本中,我得到了相同的结果。 echo 正在输出 ftp 命令而不是批处理命令,因此
if not exist将无法作为 ftp 命令工作。
标签: linux batch-file ftp