Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / копирование файлов по FTP с помощью батника / 7 сообщений из 7, страница 1 из 1
13.04.2005, 20:00
    #33014450
izsede
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
копирование файлов по FTP с помощью батника
Подскажите, кто знает. На сервере FTP ежедневно в отдельной папке добавляются новые файлы, при этом все старые файлы не удаляются! Как написать батник, чтобы на мой комп можно было переписывать эту новую информацию без перезаписывания старой (по датам изменения/создания файлов, что-ли). Или вообще, как копировать информацию по FTP с помощью батника? По сети это делать не сложно (copy, xcopy), но как быть здесь. Если можно, ответьте поподробнее. Если нет, может, посоветуете где поискать?
Заранее спасибо.
...
Рейтинг: 0 / 0
13.04.2005, 20:16
    #33014461
Yuraz.com
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
копирование файлов по FTP с помощью батника
Самое простое, сделать на FTP сервере скрипт, и по CRON'у его выполнять хоть раз в час. Скрипт пишется на перле ли shell. Что гораздо гибче батников.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
13.04.2005, 20:38
    #33014485
izsede
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
копирование файлов по FTP с помощью батника
Админовского доступа к серверу не имею (он в другом городе у вышестоящей организации). Мои проблемы там никого не заинтересуют. У нас с ними связь по выделенному каналу. Доступ к одной конкретной папке с ежедневно обновляемой информацией довольно больших обьемов (качаю по 2-3 часа - пропускная способность просто ужасная). Старые файлы, как я уже говорил, с сервера FTP не удаляются и объем информации постоянно растет. Хочу настроить все так, чтобы информация копировалась ночью, но не вся, а только свежая! Если есть какие-либо предложения и соображения, сообщите, пожалуйста, но честно признаюсь, в язык программирования не силен, мне что нибудь не очень заумное и желатель поподробнее. НА всякий случай: и на сервере ftp и моем сервере установленна WIN2000 Server.
PS: моя почта izsede@rambler.ru
...
Рейтинг: 0 / 0
13.04.2005, 22:00
    #33014555
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
копирование файлов по FTP с помощью батника
Ну если "не очень заумное и желательно поподробнее", то пожалуй никак :)
Во вторых, батником это сделать вряд-ли получится. А вот на чем-нибудь более серьезном - запросто. C пойдет? :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
HINTERNET hiConnection;
HINTERNET hiFTP;
HINTERNET hiDir;
WIN32_FIND_DATA file;

// Включаем wininet.dll (она часть Internet Explorer)
hiConnection = InternetOpen("GetNewFiles v1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,  0 );

// подключаемся к ftp
hiFTP = InternetConnect(hiConnection, "some_ftp.com", INTERNET_INVALID_PORT_NUMBER, "UserId", "Password", INTERNET_SERVICE_FTP,  0 ,  0 );

// переходим в нужный каталог
FtpSetCurrentDirectory(hiFTP, "/somepath/somemorepath/all_files_here");

// А теперь по циклу, смотрим какие файлы есть на ftp, и проверяем есть ли они уже у нас. Если есть пропускаем, если нету - выкачиваем
hiDir = FtpFindFirstFile(hiFTP, "*.*", &file, INTERNET_FLAG_RELOAD,  0 );
do {
    sprintf(buf, "C:\\local_folder\\%s", file.cFileName);
    if (access(buf,  0 ) == - 1 ) {
        FtpGetFile(hiFTP, file.cFileName, buf, FALSE,  0 , FTP_TRANSFER_TYPE_BINARY, (DWORD)(&file));
    }
} while(InternetFindNextFile(hiDir, &file));

// закрываем все открытые хендлы
InternetCloseHandle(hiDir);
InternetCloseHandle(hiFTP);
InternetCloseHandle(hiConnection);

Обработку ошибок и сообщения о прогрессе расставить по вкусу.
...
Рейтинг: 0 / 0
13.04.2005, 22:08
    #33014561
nex
nex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
копирование файлов по FTP с помощью батника
По-моему тебе просто нужен нормальный ftp клиент. Посмотри GlobalSCAPE CuteFTP Professional .

В нем можно хоть синхронизацию настроить, чтобы клиент сам коннектился к серверу, и выкачивал только те файлы, которых у него нет.

авторИли вообще, как копировать информацию по FTP с помощью батника?

Создаёшь файл ftp_commands.txt :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
open ftp.myserver.com
username
password
bin
cd some_remote_dir
lcd c:\some_local_dir
get mybigfile.zip
quit


и запускаешь ftp клиент таким образом:

Код: plaintext
ftp -s:ftp_commands.txt


Но на этом, к сожалению, возможности windows ftp клиента исчерпываются :). Так что либо нужен серьёзный клиент, либо прогу писать...

--
nexus
...
Рейтинг: 0 / 0
14.04.2005, 00:54
    #33014681
Mitrofan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
копирование файлов по FTP с помощью батника
Да, всё правильно. Но ещё можно:

open ftp.myserver.com
username
password
prompt
lcd c:\some_local_dir
mdir - c:\some_local_dir\txt

где в результате, в каталоге c:\some_local_dir создаётся файл txt, который содержит очень нужную инф-цию по содержанию текущего удалённого каталога. А там и время есть.
Далее.. FOR /F "tokens... бла-бла-бла и список того, что вам надо готов.
Далее, опять же с помощью FOR выбираем с ftp то, что нам надо.
И это всё делается одним bat-ничком или лучше cmd-шником.
А справка по FOR в виндах есть.
...
Рейтинг: 0 / 0
14.04.2005, 11:43
    #33015349
izsede
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
копирование файлов по FTP с помощью батника
всем большое спасибо. буду разбираться дальше.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / копирование файлов по FTP с помощью батника / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]