2017-02-21 28 views
0

Поставщик, с которым я работаю, загружает ZIP-файлы на FTP. Мне нужно загрузить все, что загружено и обработать, по мере необходимости.Загрузите все файлы в папку FTP с помощью Powershell

Использование Powershell, как загрузить *.* из папки FTP?

(со ссылкой на https://social.technet.microsoft.com/Forums/office/en-US/744ee28a-9340-446a-b698-4b96e081b501/download-files-from-ftp-server?forum=winserverpowershell)

# Config 
$Username = "user" 
$Password = "password" 
$LocalFile = "C:\tools\file.zip" 
$RemoteFile = "ftp://myftpserver:22/Folder1/Folder/file.csv" 

# Create a FTPWebRequest 
$FTPRequest = [System.Net.FtpWebRequest]::Create($RemoteFile) 
$FTPRequest.Credentials = New-Object  System.Net.NetworkCredential($Username,$Password) 
$FTPRequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile 
$FTPRequest.UseBinary = $true 
$FTPRequest.KeepAlive = $false 
$ftpRequest.EnableSsl = $true 
# Send the ftp request 
$FTPResponse = $FTPRequest.GetResponse() 
# Get a download stream from the server response 
$ResponseStream = $FTPResponse.GetResponseStream() 
# Create the target file on the local system and the download buffer 
$LocalFileFile = New-Object IO.FileStream ($LocalFile,[IO.FileMode]::Create) 
[byte[]]$ReadBuffer = New-Object byte[] 1024 
# Loop through the download 
    do { 
     $ReadLength = $ResponseStream.Read($ReadBuffer,0,1024) 
     $LocalFileFile.Write($ReadBuffer,0,$ReadLength) 
    } 
    while ($ReadLength -ne 0) 

Есть ли способ сделать $ уд_файл что-то вроде ftp://myftpserver:22/Folder1/Folder/*.zip или ftp://myftpserver:22/Folder1/Folder/*.*

Мои извинения, если есть почта то же самое. Я видел нечто подобное, но недостаточно близко, чтобы ответить на вопрос.

+0

Возможный дубликат файлов и подпапок для загрузки файлов Powershell FTP (http://stackoverflow.com/questions/37080506/powershell-ftp-download-files-and-subfolders) –

ответ

0

Я создал сценарий PowerShell SFTP, FTP и FTPS. Вам нужно будет скачать его из моего github. Я не использую сторонние приложения, потому что я им не доверяю. Я использую REBEX.dll для секции SFTP и .Net WebRequest для FTP и FTPS.

https://github.com/FallenHoot/ZOTECH-PS/blob/master/SFTP.zip

Если у вас есть вопросы, понимающих код, пожалуйста, дайте мне знать. Если вы не собираетесь использовать функцию Get-SFTP, просто прокомментируйте ее.