DDoS Protection Powered by DDoS-GUARD

Скачать файл с FTP без SMS и регистрации

Просмотров: 2296Комментарии: 0
Автоматизация

Решил я автоматизировать процесс скачки архива с "FTP" и распаковки его в нужну папку.

Точно помню, что распаковывать архивы из "CMD" без дополнительных программ нельзя... и вроде как помню, что из "Powershell" тоже нельзя...

Но годы идут, в "Microsoft" программистов ебут, и вуаля, с версии "Powershell 5.0" появилась поддержка распаковки "из коробки".

Ну, что же, значит объединим две технологии и у-перёд!

В статье используются программы:

GreenShot v1.2.10.6 Программа для создания скриншотов оф. сайт
AkelPad v4.9.8 Текстовый редактор оф. сайт

Для начало нужно убедиться, что версия установленного "Powershell" больше 5.0, запускаем "Powershell" и пишем "Get-host" - будет указана версия.

2018-05-24-18_41_58-windows-powershell.jpg

Если мало, то можно качнуть обновление, с сайта "Microsoft". Так как ебут их всё же недостаточно, обновление "PowerShell" будет называться "Windows Management Framework" LOL

Теперь всё готово.

Нужно будет создать два файла, один ".TXT" (текстовик в кодировке OEM/DOS) второй ".PS1" (можно в кодировке ANSI (Windows)).

Текстовик-текстовик будет содержать команды для "FTP-клиента", а текстовый скрипт всё остальное.

Содержимое скрипта "Powershell":

<#
Скрипт для скачивания с FTP сервера ftp.moex.com
архивов с шаблонами для XML и распаковки их на диск
(C) (:Pro:) 14:55 24.05.2018
#>
#Создаём временный каталог для скачивания
New-Item -Path "c:\micex" -Name "temp" -ItemType "directory" -force
#Скачиваем файлы
ftp -s:c:\micex\moex_ftp.txt
#Распаковываем файлы
Get-ChildItem c:\micex\temp\Currency_xsd.zip | Expand-Archive -DestinationPath c:\MICEX\XSD\ -Force
#Удаляем временную папку
Remove-Item -Path C:\micex\temp -Recurse

Содержимое текстовика (moex_ftp.txt):

open ftp.moex.com
anonymous
[email protected]
binary
prompt
lcd c:\MICEX\TEMP
cd "/pub/Reports/Currency/xsd"
get allfiles.zip Currency_xsd.zip
close
bye

Заметка

"FTP CMD" умеет работать только в АКТИВНОМ режиме! На локальном брандмауэре должны быть разрешены входящие подключения с порта "TCP 20" на любой локальный порт.

Так, что же происходит то:

Скрипт создаёт временную папку, по указанному пути, после чего вызывает программу ftp, с передачей ей чего надо делать,

в файле для ftp, написано, что нужно перейти в другой локальный каталог, так как при скачке всё качается в активный каталог, и скачать файл, переименовав его,

попрощаться и выйти из программы ftp, после чего скрипт работает дальше, распаковывает скачанный архив, и удаляет временную папке. Красота =)

Так можно скачать много разных файлов, из той же директории на FTP-сервере:

get allfiles1.zip Currency_xsd1.zip
get allfiles2.zip Currency_xsd2.zip
get allfiles3.zip Currency_xsd3.zip

или из разных директорий, не забывая переходить в них:

cd "/pub/Reports/Currency1/xsd1"
get allfiles1.zip Currency_xsd1.zip
cd "/pub/Reports/Currency2/xsd2"
get allfiles2.zip Currency_xsd2.zip
cd "/pub/Reports/Currency3/xsd3"
get allfiles3.zip Currency_xsd3.zip

Помни! Всё будет складываться по пути, указанном в текстовике, вот тут (lcd c:\MICEX\TEMP).

Если нужно раскладывать в разные папки не забывай менять локальный путь (lcd) перед скачиванием:

lcd c:\MICEX\TEMP1
get allfiles1.zip Currency_xsd1.zip
lcd c:\MICEX\TEMP2
get allfiles2.zip Currency_xsd2.zip
lcd c:\MICEX\TEMP3
get allfiles3.zip Currency_xsd3.zip

По файлам вроде всё понятно. Описание команд "FTP" я выложу позже... они есть в интернете ;-)

ЗЫ. Бывает скачка подвисает (плохая связь/тормозной сервер), и ничего не происходит (повисает на этапе: get: путь/имя файла, я просто крестиком закрываю окошко... оно само не закроется никогда :(.

2018-05-24-18_43_41-windows-powershell.jpg

Оставьте комментарий!

smile biggrin LOL rofl2 wink rolleyes2 acute aggressive bad blume1 blush bomb boredom bye clapping congratulate cool cray dance2 diablo drinks empathy flag_of_truce fool fool3 good good2 greeting help hi hmm i_am_so_happy mad mocking morning1 music nea new_russian nyam2 ok pardon playboy pleasantry sad scare scratch_one-s_head secret shok sorry stop timeout yahoo shyesok crazy dash1.gif dash2.gif gamer.gif hang1.gif ireful.gif mail1.gif mamba.gif sarcastic.gif wacko1.gif wacko2.gif wacko3.gif


Комментарий будет опубликован после проверки

     

  

(обязательно)