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

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

Ответить
Настройки темы
CMD/BAT - [решено] Копирование последнего файла с FTP на локальный компьютер

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


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

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


Здравствуйте, буду признательна если кто-нибудь поможет написать .bat или посоветует где почитать.

Проблема: на FTP два раза в день падают файлы следующего вида f_1, f_2, f_3..... Нужен bat который будет подключаться к FTP и копировать файл с самым последним номером на локальный компьютер в папку из которой предварительно удаляется предыдущий.

В настоящее время созданы следующие файлы:
ftp.txt

open xx.xx.x.xxx
user1
123456

ls -d C:\folder\file.txt

$log=C:\folder\file.txt

bin
recv f_789.rar C:\folder\f_789.rar
disconnect
quit


1.bat

ftp -s:ftp.txt

for /f %%i in (%log%) do (
set filename=%%i
)
pause

Т.е. у меня не получается взять имя последнего файла работая с FTP. Можно ли реализовать в файле ftp.txt цикл аналогичный тому, что реализован сейчас в 1.bat? Можно ли присвоить это значение переменной? Как работать с переменными при подключении к FTP?

Отправлено: 13:02, 03-08-2012

 

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


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

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


Вам нужно с некого ФТП забирать файлы, а почему бы вам не обратить внимание на такую связку : wget curl xcopy
По сути - вы батником забираете с ФТП (только изменённые и новые) файлы, а xcopy регулируете свои потребности внутри локалки.
Или "взять" dir с ФТП в файл и на основании этого файла "брать" последнее имя для скачивания или другой обработки.
Если кому-то нужны конкретные примеры, обращайтесь - покажу свои, работающие примеры.

Последний раз редактировалось igvak, 06-08-2012 в 12:38. Причина: Дополнения


Отправлено: 12:30, 06-08-2012 | #2



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

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


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


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

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


если использовать xcopy не совсем понятно как будет определятся новый файл или нет, папка в которую я копирую файл должно содержать только последний, актуальный.
Например если там лежал f_1, то сначала удаляется f_1, а потом в эту папку копируется f_2.

в файле ftp.txt я использую команду ls -d C:\folder\file.txt, которая на локальный диск в файл записывает все имена файлов с ftp.
Далее я могу в 1.bat взять последнее имя файла с помощью цикла
for /f %%i in (%log%) do (set filename=%%i)
но как это сделать в файле ftp.txt? при попытке использовать там данный цикл выдается ошибка о том, что команда не допустима.

В общем я определила имя последнего файла, но как дальше работать с этим именем не понимаю.

Отправлено: 10:05, 07-08-2012 | #3


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


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

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


lekanka - Вы сделали основное - ...В общем я определила имя последнего файла, но как дальше работать с этим именем не понимаю...
Имея переменную с именем последнего файла - к нему (файлу) можно применять все имеющинся команды.
первое - наверное нужно скопировать не имя, а файл с этим именем, себе на локальный ресурс.
второе - ой ну тут уже любые команды - от ваших нужд зависит, я бы вторым скопировал файл в архив накоплений, чирконул бы в лог - мол "ходил туды, видел это, а взял это + год/мес/день/час/мин", а уж потом обрабатывал "вытянутый" файл по вашему назначению.

Отправлено: 14:20, 08-08-2012 | #4


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


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

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


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

Отправлено: 11:32, 09-08-2012 | #5


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


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

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


Проблема решена

(echo user username pass
echo ls -d
echo quit)|ftp -n xx.xx.x.xx > C:\folder\file.txt

for /f %%i in (C:\folder\file.txt) do (
set filename=%%i
)
pause
(
echo user username pass
echo bin
echo hash
echo prompt
echo get %filename%
) | ftp -n xx.xx.x.xxx

Отправлено: 13:46, 13-08-2012 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Двойное расширение файла, удаление последнего. delure Скриптовые языки администрирования Windows 19 25-12-2020 22:27
VBS/WSH/JS - Копирование самого последнего файла по дате djviper Скриптовые языки администрирования Windows 1 31-05-2012 09:58
CMD/BAT - [решено] Копирование файла с http-узла на локальный компьютер sea707 Скриптовые языки администрирования Windows 5 06-06-2011 02:40
Перенаправление входящего запроса на локальный компьютер septera Microsoft Windows NT/2000/2003 3 22-04-2009 08:53




 
Переход