windows - 如何在没有 -s 标志的情况下自动运行 ftp?
问题描述
我正在使用一个需要自动检索文件的硬件,它上面有一个非常基本的 ftp 程序版本。这归结为我无法使用 -s 标志和带有 ftp 命令的文件运行 ftp。但是,如果我从 cmd 以相同的顺序使用完全相同的命令(因此失去了我需要的自动化),我可以检索我需要的文件。我正在寻找任何可能存在的解决方案,因为我已经尝试了很多选项。
我已经尝试过的:
ftp -s:文件名.txt;服务器响应 - 命令未实现
Matlab内置的ftp库;与 ftp -s 相同的问题
Python ftp 库;同样的问题
从 telnet 运行 ftp;甚至无法连接
从 C# 中的 cmd 进程运行 ftp;启动后无法将输入写入 ftp 程序(这里可能会丢失,因为我以前从未使用过 c#)
任何建议表示赞赏。如果相关的话,我正在使用 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 命令。
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 命令仍然失败,所以我不确定为什么它有效,但我不会质疑它....
解决方案
推荐阅读
- java - 修改现有 Excel 工作表时如何使用 apache POI 验证单元格的数据?
- python - 如何用 def 函数替换 lambda 函数?
- flutter - 搜索委托,当我点击搜索按钮时,它会显示带有错误子项的红屏!=空
- postgresql - 从 azure devops 自动化 PostgreSQL 脚本,而无需在我的本地计算机上安装任何客户端工具/驱动程序
- javascript - React useEffect:对值更改做出反应以更新另一个也是依赖项
- kotlin - 使用 RxJava 的多个 POST 请求
- html - 为什么图像显示在服务器上而不显示在本地主机上?
- python - 诱使 PyCharm 在可调用对象中推断通用 Python 类型参数的技巧?
- c++ - 可加载的 macOS 捆绑符号与动态库中的符号冲突
- html - 页脚代码在 CSS 样式表中显示为红色,但 HTML 代码很好