命令提示符-使用批处理文件上传文件时出现“找不到文件”错误

时间:2019-12-18 10:04:32

标签: windows batch-file file-upload ftp

我正在学习批处理脚本,并尝试使用批处理文件将文件上传到特定位置,但是没有上传文件。

#!/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。

1 个答案:

答案 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%