Я работаю с аппаратным обеспечением, которое мне нужно для автоматического извлечения файлов, на котором установлена очень элементарная версия программы ftp.Это сводится к тому, что я не могу запустить ftp, используя флаг -s и файл с командами ftp.Однако, если я использую те же самые команды в том же порядке из cmd (таким образом теряя необходимую автоматизацию), я могу получить нужные мне файлы.Я ищу любое решение, которое может существовать, так как я уже пробовал немало вариантов.
Что я уже пробовал:
ftp -s: filename.txt;ответ сервера - команда не реализована
Встроенная в Matlab библиотека ftp;та же проблема, что и у ftp -s
библиотека ftp Python;та же проблема
запуск ftp из telnet;невозможно даже подключить
запуск ftp из процесса cmd в c #;Невозможно записать ввод в программу ftp после ее запуска (возможно, здесь я могу пропустить, потому что раньше никогда не использовал c #)
Любой совет приветствуется.Я работаю в Windows 7, если это актуально.
** содержимое файла filename.txt **
open <192.168.100.220>
get Disk00
quit
** вывод команды run -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, которую я имею на этом аппаратном обеспечении, интерпретирует или в этом случае неправильно интерпретирует команды, отправленные из командного файла, который я использую.Вывод неудачной команды PORT при запуске из пакетного файла показывает, что каким-то образом она неправильно индексирует команду.От Wireshark:
Request: PORT 192,168,100,100,230,70
Response: 202 [2,16] Command Not Implemented
Вот почему мой первоначальный вопрос больше состоит в том, как я могу реализовать обходной путь для этого, чтобы избежать любого странного поведения, которое делает эта версия кода ftp.
**ОБНОВЛЕНИЕ **
При тестировании случайных комбинаций команд в файле, который я передаю ftp с флагом -s, я исправил свою проблему, вызвав PORT перед использованием команды get ... Одна из команд PORTпо-прежнему не удается, поэтому я не совсем уверен, почему это работает, но я не собираюсь ставить это под сомнение ....