CMD/BAT - скрипт для копирования файлов с FTP-сервера
-
SVK8891
CMD/BAT - скрипт для копирования файлов с FTP-сервера
Добрый день. Прошу помощи в написании скрипта .bat.
Описание: есть задача на написание скрипта, который лезет на ftp-сервер 172.30.145.21 по логину master и паролю master123, через прокси-сервер 12.215.220.93, порт 8055, логин gruff и пароль gruff123. Скрипт забирает все папки и файлы с этого сервера и копирует их в
каталог C:\Download\Archive\. После этого, скрипт находит в этом каталоге все файлы .xml и выгружает в другой каталог C:\Upload\Archive\.
После того как скрипт отаботал, он должен снова зайти на ftp-сервер синхронизировать все каталоги и файлы в каталоге C:\Download\Archive\ и записать в него только разницу.
Например скрипт в каталог C:\Download\Archive\ занес каталоги 1,2,3 и файлы 1.xml, 2.xml, а пи следующем запуске занесет только 4,5,6 каталоги и файлы 3.xml, 4.xml. Т.к. каталоги 1,2,3 и файлы 1.xml, 2.xml в каталоге C:\Download\Archive\ уже есть
Очень надо. Буду безмено благодарен за помощь!!!
Описание: есть задача на написание скрипта, который лезет на ftp-сервер 172.30.145.21 по логину master и паролю master123, через прокси-сервер 12.215.220.93, порт 8055, логин gruff и пароль gruff123. Скрипт забирает все папки и файлы с этого сервера и копирует их в
каталог C:\Download\Archive\. После этого, скрипт находит в этом каталоге все файлы .xml и выгружает в другой каталог C:\Upload\Archive\.
После того как скрипт отаботал, он должен снова зайти на ftp-сервер синхронизировать все каталоги и файлы в каталоге C:\Download\Archive\ и записать в него только разницу.
Например скрипт в каталог C:\Download\Archive\ занес каталоги 1,2,3 и файлы 1.xml, 2.xml, а пи следующем запуске занесет только 4,5,6 каталоги и файлы 3.xml, 4.xml. Т.к. каталоги 1,2,3 и файлы 1.xml, 2.xml в каталоге C:\Download\Archive\ уже есть
Очень надо. Буду безмено благодарен за помощь!!!
-
alpap
Re: CMD/BAT - скрипт для копирования файлов с FTP-сервера
Цитата SVK8891:
Скрипт забирает все папки и файлы с этого сервера и копирует их в
каталог C:\Download\Archive\
для чего? Если надо:
Цитата SVK8891:
зайти на ftp-сервер синхронизировать все каталоги и файлы в каталоге C:\Download\Archive\
именно первое требование и будет выполняться при синхронизации: сервер -> комп
(у меня на сервере папка: "/0/Documents", поставьте свой путь в переменной) и отредактируйте вход: //Mario:Passw@192.168.1.xxx:XX21/
Код:
(если нет WinSCP надо скачать и поставить, как делать иначе не знаю, как делать с помощью ftp.exe не знаю)
Скрипт забирает все папки и файлы с этого сервера и копирует их в
каталог C:\Download\Archive\
CMD/BAT - скрипт для копирования файлов с FTP-сервера
для чего? Если надо:
Цитата SVK8891:
зайти на ftp-сервер синхронизировать все каталоги и файлы в каталоге C:\Download\Archive\
CMD/BAT - скрипт для копирования файлов с FTP-сервера
именно первое требование и будет выполняться при синхронизации: сервер -> комп
(у меня на сервере папка: "/0/Documents", поставьте свой путь в переменной) и отредактируйте вход: //Mario:Passw@192.168.1.xxx:XX21/
Код:
Код: Выделить всё
@echo off
set "ldir0=C:\Download\Archive"
set "ldir1=C:\Upload\Archive"
set "sdir=/0/Documents"
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/command ^
"open ftp://Mario:Passw@192.168.1.xxx:XX21/ -rawsettings ProxyMethod=3 ProxyHost=""12.215.220.93"" ProxyPort=8055 ProxyUsername=""gruff"" ProxyPassword=""gruff123""" ^
"synchronize local %ldir0% %sdir%" ^
"exit"
for /f "delims=" %%f in ('dir /a-d/b/s "%ldir0%\*.xml"') do >nul copy "%%f" "%ldir1%"
pause& exit /b(если нет WinSCP надо скачать и поставить, как делать иначе не знаю, как делать с помощью ftp.exe не знаю)
-
alpap
Re: CMD/BAT - скрипт для копирования файлов с FTP-сервера
Если речь о Win10 (>=1603), можно и curl'ом обойтись, чай ведь синхронизация - два снепшота, два притопа.
-
greg zakharov
Re: CMD/BAT - скрипт для копирования файлов с FTP-сервера
Цитата alpap:
именно первое требование и будет выполняться при синхронизации: сервер -> комп
(у меня на сервере папка: "/0/Documents", поставьте свой путь в переменной) и отредактируйте вход: //Mario:Passw@192.168.1.xxx:XX21/
Доброе утро, alpap! Спасибо, скрипт реально работает. Скажите пожалуйста, как можно скрипт попавить так, чтобы он именно останавливался, т.е. после выполнения закрывалась CMD?
Я хочу его поставить в планировщик, чтобы он отрабатывал и через определенное время запускался снова. А на данный момент, когда он завершается, то ему необходимо нажать клавишу для продолжения
именно первое требование и будет выполняться при синхронизации: сервер -> комп
(у меня на сервере папка: "/0/Documents", поставьте свой путь в переменной) и отредактируйте вход: //Mario:Passw@192.168.1.xxx:XX21/
CMD/BAT - скрипт для копирования файлов с FTP-сервера
Доброе утро, alpap! Спасибо, скрипт реально работает. Скажите пожалуйста, как можно скрипт попавить так, чтобы он именно останавливался, т.е. после выполнения закрывалась CMD?
Я хочу его поставить в планировщик, чтобы он отрабатывал и через определенное время запускался снова. А на данный момент, когда он завершается, то ему необходимо нажать клавишу для продолжения
-
greg zakharov
Re: CMD/BAT - скрипт для копирования файлов с FTP-сервера
SVK8891, уберите выделенное:
Цитата alpap:
Код:
Цитата alpap:
Код:
Код: Выделить всё
…
for /f "delims=" %%f in ('dir /a-d/b/s "%ldir0%\*.xml"') do >nul copy "%%f" "%ldir1%"
pause& exit /bCMD/BAT - скрипт для копирования файлов с FTP-сервера
-
Iska
Re: CMD/BAT - скрипт для копирования файлов с FTP-сервера
alpap, данный скрипт отрабатывает хорошо. Только вот в чем проблема- синхронизация по каталогам проходит, а вот по файлам xml нет. Т.е. он при каждом выполнении копирует старые xml. Можно как то решить проблему?
-
SVK8891
Re: CMD/BAT - скрипт для копирования файлов с FTP-сервера
alpap, данный скрипт отрабатывает хорошо. Только вот в чем проблема- синхронизация по каталогам проходит, а вот по файлам xml нет. Т.е. он при каждом выполнении копирует старые xml. Можно как то решить проблему?
-
alpap
Re: CMD/BAT - скрипт для копирования файлов с FTP-сервера
SVK8891,
скрипт при выполнении:
- копирует из "/0/Documents" в "C:\Download\Archive" то чего (в "C:\Download\Archive") нет (это и есть синхронизация сервер->комп)
- копирует из "C:\Download\Archive" в "C:\Upload\Archive" все файлы xml что найдет (так написано в условии)
что и где конкретно не так работает?
скрипт при выполнении:
- копирует из "/0/Documents" в "C:\Download\Archive" то чего (в "C:\Download\Archive") нет (это и есть синхронизация сервер->комп)
- копирует из "C:\Download\Archive" в "C:\Upload\Archive" все файлы xml что найдет (так написано в условии)
что и где конкретно не так работает?
-
SVK8891
Re: CMD/BAT - скрипт для копирования файлов с FTP-сервера
возможно ли что бы скрипт проверял в каталоге C:\Download\Archive время создания файла .xml, для того, чтобы он брал новые файлы и копировал в "C:\Upload\Archive".
Например в каталоге C:\Download\Archive лежат .xml за 09.09.20, а последние файлы, которые он синхронизировал из "/0/Documents" от 21.12.20 - и вот эти файлы и копировать в C:\Upload\Archive.
Например в каталоге C:\Download\Archive лежат .xml за 09.09.20, а последние файлы, которые он синхронизировал из "/0/Documents" от 21.12.20 - и вот эти файлы и копировать в C:\Upload\Archive.
-
alpap
Re: CMD/BAT - скрипт для копирования файлов с FTP-сервера
SVK8891,
я, честно говоря, не понимаю, а зачем вообще нужна: "C:\Download\Archive"? Чего не синхронизировать напрямую в "C:\Upload\Archive"?
Опишите что именно вы выполняете словами. Что должно скачиваться, что с этим (из этого) потом должно происходить. У меня такое впечатление что вы еще сами не придумали задачу как надо и кроите на лету.
я, честно говоря, не понимаю, а зачем вообще нужна: "C:\Download\Archive"? Чего не синхронизировать напрямую в "C:\Upload\Archive"?
Опишите что именно вы выполняете словами. Что должно скачиваться, что с этим (из этого) потом должно происходить. У меня такое впечатление что вы еще сами не придумали задачу как надо и кроите на лету.