В командном файле вполне можно работать с файловыми серверами по протоколу 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 сервером и найденный файл (зелёным цветом)

Выполнение командного файла поиска новых прошивок на ftp сервере

Узнать больше

Наши соцсети

ftp в bat файле
Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *