Список команд для FTP из командной строки Windows

Привет всем! Предыстория сегодняшней записи весьма проста: дошли руки попытаться доделать програмку, которая сжимает графические файлы в указанной папке на FTP-сервере (я описывал свою идею и код тут). Но самым большим минусом в коде, который весьма неплохо работает (сам себя не похвалишь — никто не похвалит, ага) является его неработоспособность в полностью автоматическом режиме внутри указанного каталога с подкаталогами. Пришла пора исправить эту недоработку, и об этом мы поговорим сегодня.

Собственно, к настоящему моменту я так и не понял, как реализовать проверку структуры на FTP-сервере. Т.е. логика программы проста:
1. Получаем на вход папку
2. Проверяем структуру папки, если видим в ней папки — заходим туда, обрабатываем картинки.
3. Если видим внутри папки другие папки — заходим в них, обрабатываем картинки
4. Обработали все — выходим вверх, идем в другие папки.

В теории — все просто, а вот на практике как-то не заладилось 🙁 Я все еще полон оптимизма реализовать этот код, но когда — не понятно, ибо в настоящее время программирование не является моей основной деятельностью, к сожалению 🙁

Додумался только до отхода от библиотеки ftplib, и варианта использования штатного FTP-клиента, который будет использоваться для обработки данных. Как это связать в кучу — пока не понятно (да и возможно ли), однако на всякий случай решил написать шпаргалку по списку доступных команд для FTP из командной строки Windows:

! — Временный переход в оболочку
? — Вывод справочных сведений локального компьютера
append — Добавление в файл
ascii — Установка режима передачи файлов в формате ascii
bell — Выдача звукового сигнала по завершении команды
binary — Установка режима передачи файлов в двоичном формате
bye — Завершение сеанса ftp и выход
cd — Изменение рабочего каталога на удаленном компьютере
close — Завершение сеанса ftp
delete — Удаление файла на удаленном компьютере
debug — Переключение режима отладки
dir — Вывод содержимого каталога удаленного компьютера
disconnect — Завершение сеанса ftp
get — Получение файла
glob — Переключение метасимвольного расширения имен локальных файлов
hash — Переключение вывода `#’ для каждого переданного буфера
help — Вывод справочных сведений локального компьютера
lcd — Изменение рабочего каталога локального компьютера
literal — Отправка произвольной команды ftp
ls — Вывод содержимого каталога удаленного компьютера
mdelete — Удаление нескольких файлов
mdir — Вывод содержимого нескольких каталогов удаленного компьютера
mget — Получение нескольких файлов
mkdir — Создание каталога на удаленном компьютере
mls — Вывод содержимого нескольких каталогов удаленного компьютера
mput — Отправка нескольких файлов
open — Подключение к удаленному ftp
prompt — Переключение интерактивной подсказки для составных команд
put — Отправка одного файла
pwd — Вывод рабочего каталога удаленного компьютера
quit — Завершение сеанса ftp и выход
quote — Отправка произвольной команды ftp
recv — Получение файла
remotehelp — Получение справочных сведений с удаленного сервера
rename — Переименование файла
rmdir — Удаление каталога на удаленном компьютере
send — Отправка одного файла
status — Отображение текущего состояния
trace — Переключение трассировки пакетов
type — Установка типа передачи файлов
user — Отправка сведений о новом пользователе
verbose — Переключение режима вывода сообщений

Дополнительно: параметры командной строки используются для изменения работы команд FTP. Параметр командной строки следует указывать после основной команды FTP через пробел. Ниже — список наиболее часто используемых параметров:
-v Отключение вывода на экран ответов с удаленного сервера.
-n Отключение автоматического входа при начальном подключении.
-i Отключение интерактивных запросов при передаче нескольких
файлов.
-d Включение отладочного режима, отображает все команды FTP, передаваемые между клиентом и сервером.
-g Отключение расширения файлов, которое разрешает использование подстановочных символов в именах локальных файлов и путей.
-s:filename Задание текстового файла, содержащего команды FTP, которые будут выполняться автоматически при запуске FTP. Пробелы в этом параметре не допускаются. Используйте этот параметр вместо перенаправления (>).
-a Использование локального интерфейса для привязки соединения.
-w:windowsize Переопределение стандартного размера буфера передачи (65535).
computer Задание имени или IP адреса удаленного узла, к которому необходимо подключиться. Компьютер, если он указан, должен быть последним параметром в строке.