PowerShell – Descargar todos los archivos de una carpeta ftp

Crear un script para descargar un archivo en concreto de un ftp es bastante sencillo y encontramos muchos ejemplos. Desde una máquina Windows, si queremos descargar todos los archivos de una carpeta en concreto de un servidor ftp sin saber el nombre de cada uno de los archivos ya es un poco más complicado.

A través de una consulta en http://stackoverflow.com/ he encontrado un script en PowerShell fantástico que funciona a las mil maravillas:

	
  #FTP Server Information - SET VARIABLES
    $ftp = "ftp://ftp.myserver.com" 
    $user = 'user' 
    $pass = 'password'
    $folder = 'Folder'
    $target = "C:\test\"


    #SET CREDENTIALS
    $credentials = new-object System.Net.NetworkCredential($user, $pass)

    function Get-FtpDir ($url,$credentials) {
        $request = [Net.WebRequest]::Create($url)
        $request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
        if ($credentials) { $request.Credentials = $credentials }
        $response = $request.GetResponse()
        $reader = New-Object IO.StreamReader $response.GetResponseStream() 
        $reader.ReadToEnd()
        $reader.Close()
        $response.Close()
    }

    #SET FOLDER PATH
    $folderPath= $ftp + "/" + $folder + "/"

    $Allfiles=Get-FTPDir -url $folderPath -credentials $credentials
    $files = ($Allfiles -split "`r`n")

    $files 

    $webclient = New-Object System.Net.WebClient 
    $webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass) 
    $counter = 0
    foreach ($file in ($files)){
        $source=$folderPath + $file  
        $destination = $target + $file 
        $webclient.DownloadFile($source, $target+$file)

        #PRINT FILE NAME AND COUNTER
        $counter++
        $counter
        $source
    }



En este caso en el propio script le asignamos los valores de los parámetros, se podría modificar y pasar los parámetros al ejecutar.


Script vía Vía: http://stackoverflow.com/questions/19059394/powershell-connect-to-ftp-server-and-get-files



Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)