我正在学习批处理脚本,并尝试使用批处理文件将文件上传到特定位置,但是没有上传文件。
#!/bin/bash
SET HOST=xx.xx.x.x
SET USER=xxxxx
SET PASSWD=xxxxx
SET FILE='C:\Batch\post.txt'
SET PATH='/home/Test1/'
ftp -n %HOST%
quote %USER%
quote %$PASSWD%
binary
put %FILE%
quit
exit 0
当我手动执行put命令时,它会引发“找不到文件”错误。
请帮助我找到缺少的参数。
非常感谢
按如下所示更改脚本后,出现登录错误
#!/bin/bash
SET HOST=xx.xx.x.x
SET USER=xxxxx
SET PASSWD=xxxxx
SET "FILE=C:\Batch\post.txt"
(
echo quote %USER%
echo quote %$PASSWD%
echo binary
echo put %FILE%
echo quit
) | ftp -n %HOST%
请使用USER和PASS登录。命令行发送请登录 与USER和PASS一起使用。请使用USER和PASS登录。请登录 USER和PASS。
答案 0 :(得分:0)
不能通过将批处理文件中的ftp
命令放在ftp
调用之后来执行它们。那行不通。
ftp
将被执行并等待命令,但没有得到任何命令(它不知道批处理文件)。手动关闭ftp
后,该批处理文件将继续,尝试执行其他命令,而不理解它们。
您必须将ftp
命令放入一个单独的脚本文件(例如ftp.txt
)中,然后使用以下命令对其进行引用:
ftp -s:ftp.txt
避免使用单独文件的另一种方法是使用输入重定向:
(
echo quote %USER%
echo quote %$PASSWD%
echo binary
echo put %FILE%
echo quit
) | ftp -n %HOST%