Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
1

Копирование файлов с FTP-сервера на компьютеры клиентов без замены уже имеющихся файлов

29.05.2015, 14:17. Показов 3630. Ответов 8
Метки нет (Все метки)

Приветствую. Такая задача. имеется фтп сервер. на нем лежит 5 папок, в каждой паке каждый день добавляются файлы. Мне необходимо, чтобы эти файлы копировались на другие компьютеры в сети. Где запускается батник: на клиенте. В идеале хотелось бы чтобы батник брал на сервере папку, и копировал её на клиента БЕЗ замены имеющихся на клиенте файлов.
Подскажите как такое можно организовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2015, 14:17
Ответы с готовыми решениями:

Создание файлов в папке без замены имеющихся путем замены цифр в их имени по порядку
Всем доброго времени суток! Надо при нажатии кнопку создавать файл "Ins001.txt" в директории...

Копирование файлов с FTP-сервера
Доброго времени суток. имея небольшой багаж знаний в этой области))) создаю небольшой батник для...

Копирование wav-файлов с FTP-сервера на локальную машину
Возникла проблема следующего рода: Есть ftp_command.txt login psw cd...

Копирование файлов с переименованием в случае совпадения имён копируемых и имеющихся в папке назначения файлов
Доброго времени суток. Убедительная просьба, помогите пожалуйста решить задачу. Существует...

8
3891 / 1530 / 261
Регистрация: 10.12.2013
Сообщений: 5,244
29.05.2015, 23:18 2
если папок 5, а не 25, то вот так:
(безо всяких циклов for )

A.BAT:
Windows Batch file
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
::Start position
cd %USERPROFILE%
 
::create directory tree
md F1
md F2
md F3
md F4
md F5
 
::preparing temporary directory tree for downloading
del /q /s ftp_temp\*
md  ftp_temp
 
cd  ftp_temp
md  F1
md  F2
md  F3
md  F4
md  F5     
 
::ftp commands preparing
echo user>s
echo password>>s
 
echo cd /f1    >>s
echo lcd F1    >>s
echo mget *.*  >>s
 
echo cd /f2>>s
echo lcd ..\F2 >>s
echo mget *.*  >>s
 
echo cd /f3    >>s
echo lcd ..\F3 >>s
echo mget *.*  >>s
 
echo cd /f4    >>s
echo lcd ..\F4 >>s
echo mget *.*  >>s
 
echo cd /f5    >>s
echo lcd ..\F5 >>s
echo mget *.*  >>s
 
echo quit      >>s
 
::ftp executing
ftp -s:s -i localhost
 
::copying from temp to F* with intermediate %DATE%-SUBDIR creating
cd %USERPROFILE%\F1
md %DATE%
cd %DATE%
copy %USERPROFILE%\ftp_temp\F1\*
 
cd %USERPROFILE%\F2
md %DATE%
cd %DATE%
copy %USERPROFILE%\ftp_temp\F2\*
 
cd %USERPROFILE%\F3
md %DATE%
cd %DATE%
copy %USERPROFILE%\ftp_temp\F3\*
 
cd %USERPROFILE%\F4
md %DATE%
cd %DATE%
copy %USERPROFILE%\ftp_temp\F4\*
 
cd %USERPROFILE%\F5
md %DATE%
cd %DATE%
copy %USERPROFILE%\ftp_temp\F5\*
 
::Start position
echo Done!
cd %USERPROFILE%
Запуск:
Windows Batch file
1
A.BAT 2>&1 >A.LOG
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
03.06.2015, 13:50  [ТС] 3
немного не понял

мне нужно что-то типа такого

Код
захожу в нужную папку
ftp
open 192.168.1.2
логин
пароль
cd 1
mget *
команда отлично отрабатывает, из папки 1 всё копируется, но если файлы существуют, то они перезаписываются. мне такое не нужно, надо чтобы копировались только те, которых нет
и как автоматизировать ввод логина и пароля
0
3891 / 1530 / 261
Регистрация: 10.12.2013
Сообщений: 5,244
03.06.2015, 22:38 4
:
Windows Batch file
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
:Start position
cd %USERPROFILE%
 
::create directory tree
md F1
md F2
md F3
md F4
md F5
 
::preparing temporary directory tree for downloading
del /q /s ftp_temp\*
md  ftp_temp
 
cd  ftp_temp
md  F1
md  F2
md  F3
md  F4
md  F5     
 
::ftp commands preparing
echo USERNAME>s
echo PASSWORD>>s
 
echo cd /f1    >>s
echo lcd F1    >>s
echo mget *.*  >>s
 
echo cd /f2>>s
echo lcd ..\F2 >>s
echo mget *.*  >>s
 
echo cd /f3    >>s
echo lcd ..\F3 >>s
echo mget *.*  >>s
 
echo cd /f4    >>s
echo lcd ..\F4 >>s
echo mget *.*  >>s
 
echo cd /f5    >>s
echo lcd ..\F5 >>s
echo mget *.*  >>s
 
echo quit      >>s
 
::ftp executing
ftp -s:s -i localhost
 
::copying from temp to F* 
cd %USERPROFILE%\F1
for %%j in ( %USERPROFILE%\ftp_temp\F1\* ) do IF NOT EXIST %%~nxj ( copy %%j . )
 
cd %USERPROFILE%\F2
for %%j in ( %USERPROFILE%\ftp_temp\F2\* ) do IF NOT EXIST %%~nxj ( copy %%j . )
 
cd %USERPROFILE%\F3
for %%j in ( %USERPROFILE%\ftp_temp\F2\* ) do IF NOT EXIST %%~nxj ( copy %%j . )
 
cd %USERPROFILE%\F4
for %%j in ( %USERPROFILE%\ftp_temp\F2\* ) do IF NOT EXIST %%~nxj ( copy %%j . )
 
cd %USERPROFILE%\F5
for %%j in ( %USERPROFILE%\ftp_temp\F2\* ) do IF NOT EXIST %%~nxj ( copy %%j . )
 
::Start position
echo Done!
cd %USERPROFILE%
логин и пароль лежат открытым текстом в сгенерённом файле s ( строки 23 и 24 )

Добавлено через 10 минут
исправить F2 на F3,F4,F5 соответственно в строчках 59,62,65

Добавлено через 19 минут
ЗЫ: если файлов на фтп МНОГО, тогда надо другое решение, без безоговорочного копирования.
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
04.06.2015, 09:58  [ТС] 5
volodin661, а можно сделать так, чтобы копировалось сразу напрямую в папку без временных?
0
3891 / 1530 / 261
Регистрация: 10.12.2013
Сообщений: 5,244
04.06.2015, 13:00 6
Цитата Сообщение от Drongo Посмотреть сообщение
а можно сделать так, чтобы копировалось сразу напрямую в папку без временных?
не возражаю, делай.
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
04.06.2015, 13:18  [ТС] 7
если бы мог - не сидел бы тут)))

подскажи как мне вот это запихнуть в батник
Код
захожу в нужную папку
ftp
open 192.168.1.2
логин
пароль
cd 1
mget *
просто если так оставляю, то командная строка открывается и висит в ожидании команды open
0
3891 / 1530 / 261
Регистрация: 10.12.2013
Сообщений: 5,244
04.06.2015, 14:28 8
человек я пожилой, больной, нервы ни к чёрту,
если сказал подсунуть ftp файл-инструкцию(строка 49 !!! ), значит так и надо делать.

Добавлено через 17 минут
или так:

Windows Batch file
1
2
3
4
5
cd %USERPROFILE%\F1
curl --list --user USERNAME:PASSWORD  [url]ftp://localhost/f1/[/url] >list
for /F %%j in ( list ) do if not exist %%j (curl --user USERNAME:PASSWORD [url]ftp://localhost/f1/%%j[/url] -o %%j)
 
итд для F2,F3,F4,F5
curl взять здесь:
http://www.confusedbycode.com/curl/
0
4 / 6 / 1
Регистрация: 25.05.2015
Сообщений: 46
04.06.2015, 14:53 9
Можно попроще, существует много программ для бэкапа, остаётся установить, назначить операции, пути, расписание. Они будут делать всё автоматически. Даже старый Неро на это способен и как ни странно Винрар, не говоря уже о специализированных прогах.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2015, 14:53

Копирование файлов с переименованием в случае совпадения имён перемещаемых и имеющихся в папке назначения файлов
Добрый день. Помогите создать bat файл. Смысл в чем есть папка загрузки на компьютере с нее файлы и...

Копирование всех файлов из директории в нужную папку без замены
Подскажите. Нужно скопировать из одной папки в другую все файлы, но все это проходит с заменой, а...

Как передать файлы по мейлу, mail, передача файлов без ftp сервера, некрупный файл, из определённой папки C#
Здравствуйте, подскажите пожалуйста как отправить файл из конкретной папки через mail при нажатии...

Копирование файлов на удалённые компьютеры
Есть батник вида xcopy "C:\*.doc" \\192.168.22.111\bakup\%username%\*.* /D /S /C /Q /R /Y ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.