CMD/BAT - FTP на bat

Ответить
Аватара пользователя
LepeT

CMD/BAT - FTP на bat

Сообщение LepeT »

Используется FTP клиент в cmd типа:



Код:

Код: Выделить всё

open pegas.hosting.ru USER login password
binary
cd /site.ru/public_html
mput D:/webdata/*.xml cd import_files
mput d:\webdata\import_files\*
BY



подскажите как сделать что бы при каждой закачке на хостинг создавалась новая папка с новым именем желательно по номеру,ну т.е к примеру 1 раз создается папка с именем number 1 и в нее загружаются файлы,второй number 2 и так далее
Аватара пользователя
megaloman

Re: CMD/BAT - FTP на bat

Сообщение megaloman »

Спасибо Iska за
VBS/WSH/JS - [решено] Залив файлов на хостинг
, где помянут
сайт полезной утилитки
. Подключаете фтп-ресурс как диск и далее задача решается сравнительно несложно стандартными средствами cmd-команды For.

Либо, как альтернатива, чтобы не анализировать наличие нумерованных папок, создавать новые папки с именем, содержащим дату и время, например,

Up20141129-113359

ПолУчите дополнительные удобства управления ФТП-ресурсом.
Аватара пользователя
LepeT

Re: CMD/BAT - FTP на bat

Сообщение LepeT »

Цитата megaloman:



Спасибо Iska за ссылку на сообщение, где помянут сайт полезной утилитки. Подключаете фтп-ресурс как диск и далее задача решается сравнительно несложно стандартными средствами cmd-команды For.

Либо, как альтернатива, чтобы не анализировать наличие нумерованных папок, создавать новые папки с именем, содержащим дату и время, например,

Up20141129-113359

ПолУчите дополнительные удобства управления ФТП-ресурсом.
CMD/BAT - FTP на bat




Я понял,но мне нужен встроенный ftp без установки доп софта,поэтому вопрос как сделать это в cmd
Аватара пользователя
LepeT

Re: CMD/BAT - FTP на bat

Сообщение LepeT »

Цитата:



создавать новые папки с именем, содержащим дату и время



В батнике формируется сценарий сеанса с фтп (здесь файл с расширением .ftp создаётся рядом с батником, или можно в любом другом месте). В сеансе связи создаются папки с датой-временем. Работать с фтп с созданием нумерованных папок, как Вы хотели, стандартным ftp у меня не получается, и,ИМХО, неудобно и ненужно.





Реализация задачи здесь.

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
Set "FTP_Addr=xxx.xxx.xxx.xxx"
Set "FTP_Login=login"
Set "FTP_Pass=password"
Set "FTP_Dir1=\Site.ru\public_html"
Set "Out1=D:\webdata\*.xml"
Set "FTP_Dir2=import_files"
Set "Out2=D:\webdata\import_files\*"
rem Set "FTP_Com=%TMP%\%~n0.ftp
Set "FTP_Com=%~n0.ftp
Set "FTP_New=%Time: =0%"
Set "FTP_New=%Date:~6,4%%Date:~3,2%%Date:~0,2%-%FTP_New:~0,2%%Date:~3,2%%Date:~6,2%"
Echo %FTP_Login%>"%FTP_Com%"
Echo %FTP_Pass%>>"%FTP_Com%"
Echo binary>>"%FTP_Com%"
Echo cd ..>>"%FTP_Com%"
Echo cd %FTP_Dir1%>>"%FTP_Com%"
Echo mkdir %FTP_New%>>"%FTP_Com%"
Echo cd %FTP_New%>>"%FTP_Com%"
Echo mput "%Out1%">>"%FTP_Com%"
Echo cd ..>>"%FTP_Com%"
Echo cd %FTP_Dir1%>>"%FTP_Com%"
Echo cd %FTP_Dir2%>>"%FTP_Com%"
Echo mkdir %FTP_New%>>"%FTP_Com%"
Echo cd %FTP_New%>>"%FTP_Com%"
Echo mput "%Out2%">>"%FTP_Com%"
Echo By>>"%FTP_Com%"
ftp -i -s:%FTP_Com% %FTP_Addr%





Естественно, отлаживал на доступном мне ФТП, поэтому то, что написано в коде, мнойс Вашими путями не опробовано.

Можно наверное на локальном компе вести лог-файл со счетчиком и на его основе создавать папки на фтп-ресурсе, но это как-то ненадёжно и некрасиво. И ведёт к жесткой привязке на конкретный локальный компьютер с этим счетчиком.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»