Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрипт копирующий из ftp телефона только новые файлы, нужна помощь !!!

Ответить
Настройки темы
CMD/BAT - Скрипт копирующий из ftp телефона только новые файлы, нужна помощь !!!

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте уважаемые форумчане !!!
Озадачился проблемой бекапа фоток с телефона, суть в том что в определенное время телефон запускает ftp сервер а домашний компьютер должен зайти на него и скачать там новые появившиеся файлы фото\видео. Я нашел скрипт который делает все наоборот он может строить список файлов в двух папках и сравнивать их и недостающие файлы в папке ftp он кидает файлы с компа. Но мне нужно наоборот чтобы на комп скидывались недостающие файлы с ftp на телефоне. Подскажите пожалуйста что переделать в нем ????

@echo on
chcp 1251
set SOURCE_FILES="D:\bacups4mini\Camera1\*.*"
set DEST_FOLDER="//Camera"
set DEST_SERVER=192.168.0.101 2121
set USERNAME=anonymous
set USERPASS=

rem Составление списка команд для получения списка файлов на ftp
echo open %DEST_SERVER%>ftp_cmd.tmp
echo %USERNAME%>>ftp_cmd.tmp
echo %USERPASS%>>ftp_cmd.tmp
echo cd %DEST_FOLDER%>>ftp_cmd.tmp
echo ls>>ftp_cmd.tmp
echo close>>ftp_cmd.tmp
echo bye>>ftp_cmd.tmp

rem Получение списка файлов.
rem for нужен, чтобы вычистить из протокола все, кроме списка файлов
for /f "tokens=* delims=" %%i in ('ftp -s:ftp_cmd.tmp') do call :clearlist "%%i"

rem Составление списка команд для отправки файлов на ftp
echo open %DEST_SERVER%>ftp_cmd.tmp
echo %USERNAME%>>ftp_cmd.tmp
echo %USERPASS%>>ftp_cmd.tmp
echo cd %DEST_FOLDER%>>ftp_cmd.tmp
echo binary>>ftp_cmd.tmp

rem Собственно список файлов формируется здесь
for %%i in (%DEST_FOLDER%) do call :findfile "%%i"

rem Завершение списка команд для отправки файлов на ftp
echo close>>ftp_cmd.tmp
echo bye>>ftp_cmd.tmp
pause
rem Собственно отправка, протокол идет на консоль
ftp -s:ftp_cmd.tmp

rem Удаление временных файлов
::del ftp_cmd.tmp
::del ftp_files.tmp

goto eof

:findfile
find /i "%~n1%~x1" ftp_files.tmp>nul
if %errorlevel% == 1 echo put %1>>ftp_cmd.tmp
goto eof

:clearlist
for /f "tokens=1,2* delims= " %%j in (%1) do if "%%j" == "226" set filemode=
if not "%filemode%" == "yes" goto next
echo %1>>ftp_files.tmp
:next
for /f "tokens=1,2* delims= " %%j in (%1) do if "%%j" == "150" set filemode=yes
:eof

Отправлено: 01:52, 14-06-2014

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата Striker1000:
Подскажите пожалуйста что переделать в нем ???? »
Переделывать ничего не нужно. Надо писать пакетный файл "с нуля", ориентируясь на свои нужды.


Цитата Striker1000:
чтобы на комп скидывались недостающие файлы с ftp »

Код: Выделить весь код
@echo off& :Команда "echo off" обязательна!

rem Подставить в значения переменных свои данные!
 set $#@1_server=open ftp.opera.com
 set $#@2_user=anonymous
 rem В случае наличия пароля вставить его между кавычек вместо символа процента!
 set $#@3_password="%"
 set $#@4_ftp_folder=cd "pub/opera/win/1216/int"
 set "local_folder=C:\Users\1\AppData\Local\Temp\Work\537"

(for /f "tokens=1* delims==" %%i in ('set $#@') do echo.%%~j)>ftp_cmd.tmp
(for %%i in ("ls . ftp_lst.tmp" close bye) do echo %%~i)>>ftp_cmd.tmp
ftp -s:ftp_cmd.tmp
chcp 1251>nul
dir /a-d /b "%local_folder%">cmp_lst.tmp
chcp 866>nul
findstr /ilvxg:"cmp_lst.tmp" "ftp_lst.tmp">ftp_new.tmp
(for /f "tokens=1* delims==" %%i in ('set $#@') do echo.%%~j)>ftp_cmd.tmp
echo lcd "%local_folder%">>ftp_cmd.tmp
(for %%i in (binary hash) do echo %%i)>>ftp_cmd.tmp
(for /f "usebackq delims=" %%i in ("ftp_new.tmp") do echo get "%%i")>>ftp_cmd.tmp
(for %%i in (close bye) do echo %%i)>>ftp_cmd.tmp
ftp -s:ftp_cmd.tmp
rem Удаление временных файлов "закомментировано": могут пригодиться для "разбора полётов"!
:del cmp_lst.tmp ftp_cmd.tmp ftp_lst.tmp ftp_new.tmp
exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:00, 14-06-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Georgio, Огромное тебе Человеческое СПАСИБО !!!! Я всю голову сломал экспериментируя со старым скриптом, а ты мне так помог )))) Спасибо тебе !!!!! Все работает на Ура еще и с отчетами ваще класс !!!

Отправлено: 18:48, 14-06-2014 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрипт копирующий из ftp телефона только новые файлы, нужна помощь !!!

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Нужна помощь! Требуется скрипт программы. burunduk74 Скриптовые языки администрирования Windows 3 07-05-2014 10:29
CMD/BAT - [решено] Батник копирующий из папок в сети файлы в одну Nenomernoj Скриптовые языки администрирования Windows 11 16-01-2012 18:23
[решено] Новые элементы панели управления! Нужна помощь! LP92 Автоматическая установка Windows 2000/XP/2003 2 16-07-2010 14:23
[решено] Скрипт копирующий всю информацию из свойст ПК Centrinar AutoIt 2 19-04-2010 11:58
FTP/File - FTP команды докачка нужна помощь Ячсмит Йцукенгович Сетевые технологии 2 23-07-2009 20:56




 
Переход