Skip to content

Instantly share code, notes, and snippets.

@chardcastle
Created June 1, 2011 22:48
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save chardcastle/1003539 to your computer and use it in GitHub Desktop.
Save chardcastle/1003539 to your computer and use it in GitHub Desktop.
Upload files (recursive) via powershell
## Automate FTP uploads
## Go to destination
cd C:\Test
$location = Get-Location
"We are here: $location"
## Get files
$files = Get-ChildItem -recurse
## Get ftp object
$ftp_client = New-Object System.Net.WebClient
$ftp_address = "ftp://user:pass@adress:/home/chardcastle/test"
## Make uploads
foreach($file in $files)
{
$directory = "";
$source = $file.DirectoryName + "\" + $file;
if ($File.DirectoryName.Length -gt 0)
{
$directory = $file.DirectoryName.Replace($Location,"")
}
$Directory += "/";
$FtpCommand = $ftp_address + $directory + $file
$uri = New-Object System.Uri($ftp_command)
"Command is " + $uri + " file is $source"
$ftp_client.UploadFile($uri, $source)
}
@glukhovd
Copy link

$FtpCommand and $ftp_command...

@fakir1hossain
Copy link

This is a really great script. Helped me save a lot of time. Fakir Hossain

@johnsblac
Copy link

Line 24, remove the underscore

@hostingrajamani
Copy link

I get the following Error, can you please help ?

New-Object : A constructor was not found. Cannot find an appropriate
constructor for type System.Uri.
At C:\Script\ftp-upload.ps1:35 char:12

  • $uri = New-Object System.Uri($ftp_command)
    
  •        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : ObjectNotFound: (:) [New-Object], PSArgumentExce
      ption
    • FullyQualifiedErrorId : CannotFindAppropriateCtor,Microsoft.PowerShell.C
      ommands.NewObjectCommand

@hostingrajamani
Copy link

This script is not working and wasted 1 hour, Use this script, https://www.kittell.net/code/powershell-ftp-upload-directory-sub-directories/ (it just works great) for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment