В командном файле вполне можно работать с файловыми серверами по протоколу FTP.
Встроенная команда ftp
Более подробно см. List of FTP commands, а если переходить к написанию командного файла, то используется команда FTP:
ftp -i -n -s:ftp_command_list.txt
При этом команды должен быть сохранены в указанном текстовом файле ftp_command_list.txt.
bat файл для контроля новых файлов на ftp сервере
Этот пример показывает, как написать командный файл для автоматического обнаружения новых или обновлённых файлов в определённой папке FTP сервера. Например, у меня есть W-Fi роутер, и я хочу узнать, когда для него будет выпущена новая прошивка. Можно запускать bat файл по расписанию, чтобы он открывал папку по ftp, просматривал файлы и сравнивал с ранее скачанными
Для отладки возьмём сайт ftp.dlink.ru и будем работать с папкой pub/Router/DIR-320_NRU/Firmware (папка прошивок для DIR-320 NRU).
Подготовим файл с ftp командами, он должен будет содержать подключение к ftp.dlink.ru, анонимный вход, переход в папку с прошивками, загрузку всех BIN файлов из этой папки в текущую папку на локальном компьютере:
open ftp.dlink.ru user anonymous cd pub/Router/DIR-320_NRU/Firmware binary mget *.bin quit
Запускаем команду ftp, как было показано выше, а также дополняем командный файл следующими функциями:
- Сравнение только что скачанных файлов с уже имеющимися в неком хранилище (репозитории), проверка как по названию, так и по содержанию (на случай, если файл был обновлён под тем же именем)
- Выделение списка найденных файлов цветом
- Окно командного файла будет автоматически «всплывать», если найдены новые файлы. Если же новых файлов нет, то командный файл будет закрываться, не беспокоя пользователя.
Командный файл приобретает следующий вид:
@echo off set title_text=Checking DLink firmware title %title_text% ftp -i -n -s:download_DIR-320_NRU_firmware.txt set repository_path=repository\ for %%a in (*.bin) do fcb %%a %repository_path%%%a > nul && del %%a rem Если новых файлов нет, то выходим if not exist *.bin exit /b 0 echo. echo New and/or modified file(s) found: | nhcolor 0a dir /b *.bin | nhcolor 02 cscript //nologo activate.js %title_text% pause
Для сравнения файлов используется программка fcb из темы про поиск одинаковых файлов, т.к. встроенная fc.exe /b работает ооочень медленно при большой разнице в содержании. Также программку fcb можно скачать по ссылке. Все уже имеющиеся файлы автоматически удаляются, поэтому в локальной папке остаются только новые файлы.
Для задания текста строк (названий файлов) используется программа nhcolor.
И в конце, чтобы пользователь увидел информацию о новой прошивке, командный файл объявляет своё окно активным, с помощью скрипта activate.js.
Как поднять окно командного файла
Вывод файла: видно взаимодействие с ftp сервером и найденный файл (зелёным цветом)
Узнать больше
Наши соцсети