Télécharger des fichiers sur un ftp et les classer
Salut,
Je débute en PowerShell mais j'aimerais faire cela :
1 - Télécharger tous les fichiers dans un dossier (horodaté) d'un ftp
2 - Une fois téléchargé les classer dans des dossiers en fonction de leur nom car ils répondront à une nomenclature par exemple le fichier 0109_215_DUCS.txt sera classé dans le dossier 0109 puis dans le dossier 215. \0109\215\0109_215_DUCS.txt
3 - Envoyé par mail un log de confirmation d'exécution ou pas du script
Cela est-il réalisable ? Si oui avez vous des débuts de pistes, ou des scripts qui pourront m'aider ?
Merci d'avance.
sauvegarder de dossiers vers ftp
bonjour,
j'ai fait un script qui marche tres bien pour sauvegarder mes dossiers, fichiers et sous dossiers vers un serveur FTP...
Le problème, c'est que si je rajoute un fichier dans mon dossier il me recopie tout or moi j'ai besoin qu'il me copie que le nouveau fichier ou dossier ou fichier modifier et non reprendre tout ce qui a déjà été copié
quelqu'un pourrait-il m aider ?
en vous remerciant.
Voici le script
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| $user = "USER FTP"
$password = "PASSWORD FTP"
$localdir = "DOSSIER SOURCE"
$ftpdir = "DESTINATION"
$client = New-Object System.Net.WebClient
$client.Credentials = New-Object System.Net.NetworkCredential($user,$password)
$parentfolder = $localdir.split("\")[-1]
Write-Host "Création de $parentfolder"
$makedir = [System.Net.WebRequest]::Create($ftpdir+$parentfolder);
$makedir.Credentials = New-Object System.Net.NetworkCredential($user,$password)
$makedir.Method = [System.Net.WebRequestMethods+FTP]::MakeDirectory;
$makedir.GetResponse();
foreach($item in Get-ChildItem -recurse $localdir){
$filename = [system.io.path]::GetFullPath($item.FullName).SubString([system.io.path]::GetFullPath($localdir).Length + 1)
if ($item.Attributes -eq "Directory"){
try{
Write-Host "Création de $item.Name"
$makedir = [System.Net.WebRequest]::Create($ftpdir+"/"+$parentfolder+"/"+$filename);
$makedir.Credentials = New-Object System.Net.NetworkCredential($user,$password)
$makedir.Method = [System.Net.WebRequestMethods+FTP]::MakeDirectory;
$makedir.GetResponse();
}
catch [Net.WebException] {
Write-Host $item.Name probably exists ...
}
continue;
}
Write-Host "Transfert de $item..."
$file = New-Object System.Uri($ftpdir+"/"+$parentfolder+"/"+$filename)
$client.UploadFile($file, $item.FullName)
}
pause |