|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Скачать с FTP свежий файл |
|
|
PowerShell - [решено] Скачать с FTP свежий файл
|
Пользователь Сообщения: 69 |
Профиль | Отправить PM | Цитировать Всем доброго времени суток!
Возникла нужда, скачать файлы с FTP. Прошу всех кто связывался с этим помочь. Спасибо заранее! Задача: 1. подключится к FTP 2. Скачать свежий *.ZIP файл с FTP на локальный компьютер. 3. Распаковать *.ZIP в файл. 4. Поменять расширение (Пример.exe на .bat) 5. удалить *.ZIP файл с локального компьютера 6. Закрыть с сообщением файл успешно скопирован! Еще раз спасибо заранее! |
|
Отправлено: 05:55, 17-04-2015 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Нашел тут скрипт только он на CMD\BAT script CMD
|
Отправлено: 09:02, 17-04-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Качаем модуль FTP - https://gallery.technet.microsoft.co...lient-db6fe0cb
# Импортируем модуль Import-module C:\PSFTP # Папка для файлов $folder = "C:\test" # Подключение к фтп $pass = ConvertTo-SecureString 'ftp' -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential("ftp",$pass) Set-FTPConnection -Credentials $cred -Server ftp://ftp.contoso.ru -Session Session -UsePassive # Скачиваем файл Get-FTPChildItem zipfiles/*.zip -Session $Session | Where {$_.Name} | Sort ModifiedDate | Select -Last 1 | Foreach { $filename = "$folder\$($_.Name)" $r = Get-FTPItem -Path $_.FullName -Session $Session -LocalPath $filename -Overwrite if(Test-Path $filename) { $shell = New-Object -ComObject Shell.Application $zip = $shell.NameSpace($filename).items() try { $shell.Namespace($folder).CopyHere($zip) Get-Item "$folder\$($zip.Item(0).Name)" | Rename-Item -NewName {$_.basename + ".bat"} Remote-Item $filename -Force Write-Host "Файл успешно скопирован!" -ForeGround Yellow } catch { Write-Host "Файл скопировать не удалось!" -ForeGround Red } } } |
Отправлено: 11:03, 17-04-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Kazun, не могу понять цель использования фильтра «Where {$_.Name}». Можете пояснить?
|
Отправлено: 11:13, 17-04-2015 | #4 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Есть часть данных, которые не должны попадать в вывод( по крайне мере когда я тестировал).
PS > Get-FTPChildItem ubuntu-releases/15.04/*.torrent -Session $Session | Sort ModifiedDate Parent: ftp://mirror.yandex.ru/ubuntu-releases/15.04 Dir Right Ln User Group Size ModifiedDate Name --- ----- -- ---- ----- ---- ------------ ---- - rw-rw-r-- 1 ftp ftp 43KB 26.03.2015 22:24:00 ubuntu-15.04-beta2-desktop-amd64.iso.torrent - rw-rw-r-- 1 ftp ftp 45KB 26.03.2015 22:24:00 ubuntu-15.04-beta2-desktop-i386.iso.torrent - rw-rw-r-- 1 ftp ftp 24KB 26.03.2015 22:28:00 ubuntu-15.04-beta2-server-amd64.iso.torrent - rw-rw-r-- 1 ftp ftp 24KB 26.03.2015 22:28:00 ubuntu-15.04-beta2-server-i386.iso.torrent ftp://mirror.yandex.ru/ubuntu-releases/15.04/ubuntu-15.04-beta2-desktop-amd64.iso.torrent PS > Get-FTPChildItem ubuntu-releases/15.04/*.torrent -Session $Session | Sort ModifiedDate | Select -L ast 1 ftp://mirror.yandex.ru/ubuntu-releases/15.04/ubuntu-15.04-beta2-desktop-amd64.iso.torrent PS > Get-FTPChildItem ubuntu-releases/15.04/*.torrent -Session $Session | Where {$_.Name} | Sort Modifi edDate | Select -Last 1 Parent: ftp://mirror.yandex.ru/ubuntu-releases/15.04 Dir Right Ln User Group Size ModifiedDate Name --- ----- -- ---- ----- ---- ------------ ---- - rw-rw-r-- 1 ftp ftp 24KB 26.03.2015 22:28:00 ubuntu-15.04-beta2-server-amd64.iso.torrent |
|
Отправлено: 11:17, 17-04-2015 | #5 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать |
Отправлено: 11:23, 17-04-2015 | #6 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $pass = ConvertTo-SecureString 'PASSOWRD' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("USERNAME",$pass) |
Отправлено: 11:24, 17-04-2015 | #7 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать |
Отправлено: 11:31, 17-04-2015 | #8 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Вывод:
$shell.NameSpace($filename).items() $filename - заменить на путь к скаченному архиву. |
Отправлено: 11:38, 17-04-2015 | #9 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать |
Отправлено: 11:44, 17-04-2015 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
.NET - Скачать файлы с ftp по маске. | Sadhacker | Программирование и базы данных | 1 | 20-07-2012 21:23 | |
Прочее - [решено] Как скачать ftp архив с linux? | dima1981 | Общий по Linux | 12 | 18-04-2009 15:24 | |
[решено] Как скачать с ftp сервера | medvedkovo | Хочу все знать | 8 | 01-10-2008 19:12 | |
не получается скачать с ftp-серверов | Turman | Хочу все знать | 19 | 05-04-2005 16:24 | |
Не могу скачать файл с ftp. Что делать? | AlexanderS2004 | Хочу все знать | 3 | 23-08-2004 15:17 |
|