Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   FTP на bat (http://forum.oszone.net/showthread.php?t=291792)

LepeT 28-11-2014 19:50 2437025

FTP на bat
 
Используется 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 29-11-2014 11:22 2437208

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

LepeT 29-11-2014 12:20 2437231

Цитата:

Цитата megaloman
Спасибо Iska за ссылку на сообщение, где помянут сайт полезной утилитки. Подключаете фтп-ресурс как диск и далее задача решается сравнительно несложно стандартными средствами cmd-команды For.
Либо, как альтернатива, чтобы не анализировать наличие нумерованных папок, создавать новые папки с именем, содержащим дату и время, например,
Up20141129-113359
ПолУчите дополнительные удобства управления ФТП-ресурсом. »

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

LepeT 03-12-2014 10:21 2438954

ап тему

megaloman 03-12-2014 14:17 2439097

Цитата:

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

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

@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%

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


Время: 17:55.

Время: 17:55.
© OSzone.net 2001-