我正在学习批处理脚本,并尝试使用批处理文件在特定位置上载文件,但未上载文件。
#!/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命令时,它抛出“找不到文件”错误。
请帮助我找到缺少的参数。
非常感谢
如下更改脚本后,出现登录错误
(
echo quote %USER%
echo quote %$PASSWD%
echo binary
echo put %FILE%
echo quit
) | ftp -n %HOST%
请使用USER和PASS登录。命令行发送请登录与USER和PASS一起使用。 'C:\ Batch \ post.txt':找不到文件
您无法通过将其置于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%