powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / копирование файлов по FTP с помощью батника
7 сообщений из 7, страница 1 из 1
копирование файлов по FTP с помощью батника
    #33014450
izsede
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, кто знает. На сервере FTP ежедневно в отдельной папке добавляются новые файлы, при этом все старые файлы не удаляются! Как написать батник, чтобы на мой комп можно было переписывать эту новую информацию без перезаписывания старой (по датам изменения/создания файлов, что-ли). Или вообще, как копировать информацию по FTP с помощью батника? По сети это делать не сложно (copy, xcopy), но как быть здесь. Если можно, ответьте поподробнее. Если нет, может, посоветуете где поискать?
Заранее спасибо.
...
Рейтинг: 0 / 0
копирование файлов по FTP с помощью батника
    #33014461
Yuraz.com
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое простое, сделать на FTP сервере скрипт, и по CRON'у его выполнять хоть раз в час. Скрипт пишется на перле ли shell. Что гораздо гибче батников.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
копирование файлов по FTP с помощью батника
    #33014485
izsede
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Админовского доступа к серверу не имею (он в другом городе у вышестоящей организации). Мои проблемы там никого не заинтересуют. У нас с ними связь по выделенному каналу. Доступ к одной конкретной папке с ежедневно обновляемой информацией довольно больших обьемов (качаю по 2-3 часа - пропускная способность просто ужасная). Старые файлы, как я уже говорил, с сервера FTP не удаляются и объем информации постоянно растет. Хочу настроить все так, чтобы информация копировалась ночью, но не вся, а только свежая! Если есть какие-либо предложения и соображения, сообщите, пожалуйста, но честно признаюсь, в язык программирования не силен, мне что нибудь не очень заумное и желатель поподробнее. НА всякий случай: и на сервере ftp и моем сервере установленна WIN2000 Server.
PS: моя почта izsede@rambler.ru
...
Рейтинг: 0 / 0
копирование файлов по FTP с помощью батника
    #33014555
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если "не очень заумное и желательно поподробнее", то пожалуй никак :)
Во вторых, батником это сделать вряд-ли получится. А вот на чем-нибудь более серьезном - запросто. 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
копирование файлов по FTP с помощью батника
    #33014561
Фотография nex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему тебе просто нужен нормальный 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
копирование файлов по FTP с помощью батника
    #33014681
Mitrofan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, всё правильно. Но ещё можно:

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
копирование файлов по FTP с помощью батника
    #33015349
izsede
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем большое спасибо. буду разбираться дальше.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / копирование файлов по FTP с помощью батника
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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