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

问题描述 投票:0回答:1

我正在学习批处理脚本,并尝试使用批处理文件在特定位置上载文件,但未上载文件。

#!/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':找不到文件

batch-file file-upload ftp
1个回答
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% 
© www.soinside.com 2019 - 2024. All rights reserved.