Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Помогите с написанием батника копирования с FTP по условиям. (http://forum.oszone.net/showthread.php?t=209519)

alexuvv 21-06-2011 10:08 1698679

Помогите с написанием батника копирования с FTP по условиям.
 
Я новичок и мне требуется помощь в написании батника.
Суть ее в том, чтобы:
Зайти на FTP сервер,
Создать список файлов имеющиеся на локальной машине в определенной папке,
Сравнить эти файлы с файлами FTP папкой,
Скопировать с FTP только новые,
Проверить скопированные файлы,
После по списку скопированные удалить.

И вот что сделано:
dir *.* c:\Bat\FTPCopyFilles2.txt /b
бат: ftp -s:ftpcommand.ftp -i

команды: ftpcommand.ftp
open ftp
name
password
binary
сd \in
lcd C:\1
mget *.* /Y
Как их сравнить, чтобы скопировать только новые и удалить только скопированные файлы?
dir *.* c:\Bat\FTPCopyFilles2.txt /b
bye
quit

Заранее БЛАГОДАРЕН!

amel27 22-06-2011 03:46 1699290

Цитата:

Цитата alexuvv
как их сравнить, чтобы скопировать только новые или измененные файлы и удалить только скопированные файлы? »

зависит от формата вывода (команды DIR) удалённого FTP-сервера
с локальным DIR проблемы нет если его выполнять после FTP.EXE

alexuvv 22-06-2011 07:56 1699327

Цитата amel27:
Цитата:

зависит от формата вывода (команды DIR) удалённого FTP-сервера с локальным DIR проблемы нет если его выполнять после FTP.EXE
Хорошо, теперь имеется список файлов скопированных с ФТП в текстовом формате. Как задать условие так, чтобы все файлы кроме файлов списка были скопированы, т.е. новые файлы, не вошедшие в этот список?

amel27 22-06-2011 16:34 1699673

Цитата:

Цитата alexuvv
Как задать условие так, чтобы все файлы кроме файлов списка были скопированы, т.е. новые файлы, не вошедшие в этот список? »

т.к. это задача сравнения двух списков (тынц, тынц и тынц), нужны примеры исходных данных:

1. результат вывода DIR с FTP в файл (который парсить)... а заодно и
2. список, с которым сравнивать

alexuvv 24-06-2011 05:53 1700639

Цитата:

т.к. это задача сравнения двух списков (тынц, тынц и тынц), нужны примеры исходных данных, есть ли какие-нибудь разграничения одних команд от других, последовательность выполнения.
1. результат вывода DIR с FTP в файл (который парсить)... а заодно и
2. список, с которым сравнивать
БОЛЬШОЕ, ГРОМАДНОЕ СПАСИБО AMEL27!
У меня еще вопросик:
1) Можно ли это все объединить в один батник и как это сделать, есть ли какие-нибудь разграничения одних команд от других, последовательность выполнения.
Например:
А) Входит на ФТП и создает текстовый файл перечень файлов.
Б) Входит на локальный диск и создает текстовый файл перечень файлов.
В) Делает проверку на наличие новых файлов и создает файл изменений.
Г) Заходит на ФТП копирует файлы по изменениям.
Д) Делает копию файлов в определенное место и раскидывает файлы по расширениям в определенные папки
Е) Создает новый файл из папки копи.
Ё) Заходит и удаляет по списку файлы с ФТП.

2) Можно ли сделать сравнение файлов только по датам и размеру, если имена файлов будут одинаковые?
Например:

Файл 1
-rw-rw-rw- 1 user group 839164 Jun 17 17:31 AAA.pdf
-rw-rw-rw- 1 user group 770743 Jun 17 17:31 BBB.pdf
-rw-rw-rw- 1 user group 767941 Jun 17 17:31 CCC.pdf

Файл 2
-rw-rw-rw- 1 user group 839164 Jun 17 17:31 AAA.pdf
-rw-rw-rw- 1 user group 770743 Jun 17 17:31 BBB.pdf
-rw-rw-rw- 1 user group 768000 Jun 19 18:31 CCC.pdf

amel27 24-06-2011 08:20 1700666

Цитата:

Цитата alexuvv
А) Входит на ФТП и создает текстовый файл перечень файлов. »

примерно так:
Код:

@echo off
(echo anonymous
 echo pass@mail.ru
 echo binary
 echo cd \Products
 echo dir
 echo bye
)>"%~n0.ftp"
ftp -i -s:"%~n0.ftp">"%~n0.dir" ftp.microsoft.com

.FTP-файл - скрипт подключения
.DIR-файл - лог работы, включая список файлов (формат зависит от движка сервера)


Время: 14:16.

Время: 14:16.
© OSzone.net 2001-