首页 > 解决方案 > 如何在没有 -s 标志的情况下自动运行 ftp?

问题描述

我正在使用一个需要自动检索文件的硬件,它上面有一个非常基本的 ftp 程序版本。这归结为我无法使用 -s 标志和带有 ftp 命令的文件运行 ftp。但是,如果我从 cmd 以相同的顺序使用完全相同的命令(因此失去了我需要的自动化),我可以检索我需要的文件。我正在寻找任何可能存在的解决方案,因为我已经尝试了很多选项。

我已经尝试过的:

任何建议表示赞赏。如果相关的话,我正在使用 Windows 7。

** filename.txt 的内容 **

open <192.168.100.220>


get Disk00
quit

** 运行 -s 命令的输出 **

ftp -s:filename.txt
open 192.168.100.220
Connected to 192.168.100.220
220 Service Ready
User <192.168.100.220:>none>>:
331 User OK, Need Password

230 User Logged In
ftp> get Disk00
202 [2,16] Command Not Implemented
150 Opening Data Connection

在这一点上,进程只是挂起,我必须 ctrl+c 退出它。在我正在使用的 ftp 软件中发出的显然“未实现”的命令是原始 PORT 命令。

cmd逐行运行时的图像

Disk00 位于默认目录中。我很确定我遇到的问题是我在这块硬件上的 ftp hacky 版本如何解释的先天问题,或者在这种情况下,错误解释了从我正在使用的批处理文件发送的命令。从批处理文件运行时失败的 PORT 命令的输出表明它以某种方式错误地索引了该命令。来自 Wireshark:

Request: PORT 192,168,100,100,230,70
Response: 202 [2,16] Command Not Implemented

这就是为什么我最初的问题更多是关于如何为此实施解决方法以避免此版本的 ftp 代码正在执行的任何奇怪行为。

** 更新 **

在测试文件中命令的随机组合时,我使用 -s 标志传递给 ftp,我通过在使用 get 命令之前调用 PORT 解决了我的问题...其中一个 PORT 命令仍然失败,所以我不确定为什么它有效,但我不会质疑它....

标签: windowscmdftp

解决方案


推荐阅读