命令提示符 - 使用批处理文件上传文件时出现 "File not found" 错误

Command Prompt - Getting "File not found" error while uploading a file using batch file

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

#!/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 命令时,它抛出 "file not found" 错误。

请帮我找到丢失的参数。

非常感谢

编辑

按如下方式更改脚本后,出现登录错误

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

Please login with USER and PASS. Command line to send Please login with USER and PASS. Please login with USER and PASS. Please login with USER and PASS.

您不能通过将 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%