ftp-bat脚本中的错误在哪里?

时间:2011-08-19 06:58:12

标签: ftp batch-file

我脚本自动ftp脚本。

抛出错误:

The syntax of the command is incorrect.

User (domain.lt:(none)):

Error reading password.

Login incorrect.
Login failed.

代码:

@ECHO OFF
mkdir C:/dtmp
ECHO USER username > script.ftp
ECHO PASSWORD password > script.ftp
ECHO cd Directories-files > script.ftp
ECHO lcd C:/dtmp > script.ftp
ECHO binary > script.ftp
ECHO prompt n > script.ftp
ECHO get main.py > script.ftp
:: Use the temporary script for unattended FTP
:: Note: depending on your OS version you may have to add a '-n' switch
FTP -v -s:script.ftp domain.lt
:: For the paranoid: overwrite the temporary file before deleting it
TYPE NUL >script.ftp
DEL script.ftp
GOTO End
:End

3 个答案:

答案 0 :(得分:1)

我可以看到一些直接的问题。

第一种是在mkdir命令中使用错误的斜杠(而这是导致特定错误的斜杠)。它应该是:

mkdir c:\dtmp

第二个问题是你应该大部分命令附加到FTP脚本:

ECHO USER username         > script.ftp
ECHO PASSWORD password    >> script.ftp
ECHO cd Directories-files >> script.ftp
ECHO lcd C:/dtmp          >> script.ftp
ECHO binary               >> script.ftp
ECHO prompt n             >> script.ftp
ECHO get main.py          >> script.ftp

你拥有它的方式,每个echo都会替换该文件,因此脚本最终会由单行get main.py组成,由于你还没有登录,因此无法正常工作。

第三,由于您在脚本中登录,因此您应该通过使用ftp的-n选项来禁用自动登录(尽管我在评论中看到了这一点)仔细看后):

ftp -n -v -s:script.ftp domain.lt

另一件需要注意的事实是,某些FTP客户端没有PASSWORD命令,它们在USER线路上提供它。所以尝试改变:

ECHO USER username         > script.ftp
ECHO PASSWORD password    >> script.ftp

为:

ECHO USER username password > script.ftp

(并确保您的用户名和密码当然是正确的)。

失败,只需启动一个没有-s的FTP会话,并通过单独输入每个FTP命令来查看出错的地方:

C:\Pax> ftp -n wopr.dod.gov
Connected to wopr.dod.gov.
220-FTPD DOD FTP at WOPR.DOD.GOV, 07:28:59 on 2011-08-19.
220 SHALL WE PLAY A GAME?
ftp> user sfalken joshua
331 Send password please.
530 PASS command failed
Login failed.
ftp> bye
221 Quit command received. Goodbye.

答案 1 :(得分:0)

尝试以下

ftp -n wopr.dod.gov
用户sfalken
通过约书亚 再见

答案 2 :(得分:0)

在创建FTP脚本文件时,请注意用户/密码的尾随空格,例如

ECHO USER用户名> script.ftp

应该是: ECHO USER用户名> script.ftp