Question Invoke-WebRequest en vue de la récupération de fichiers sur un serveur FTP.

Plus d'informations
il y a 5 mois 3 semaines - il y a 5 mois 3 semaines #33584 par JeSuisMoi
Bonjour,

Je tente de créer un script ayant pour finalités de : 
1/ créer une arborescence;
2/ de récupérer des fichiers de données .csv sur un serveur FTP à placer dans cette arborescence. 

Voici quelques lignes de code:
Write-Host "_________________________________________________" -ForegroundColor Green
Write-Host "            SCRIPT RUNNING                       " -ForegroundColor Green
Write-Host "_________________________________________________" -ForegroundColor Green

Write-Host ""

$directory1="G:\service INFORMATIQUE 5IVE\BIKE OFFICE\IMPORT_FICHIERS"
$directory2="G:\service INFORMATIQUE 5IVE\BIKE OFFICE\IMPORT_FICHIERS\Matrices internes\MACROS_ESTEVEZ\V4"
$current_year=(Get-Date).year
$current_date=(Get-Date).year,(Get-Date).month,(Get-Date).day -join "_"

$supplier=Read-Host -prompt "Enter supplier's name with capital letters: "

New-Item -ItemType Directory $directory1\$current_year\$supplier\$current_date -ErrorAction SilentlyContinue 

#Invoke-WebRequest -Uri ftp://login:mdp@ftp3.culturevelo.com/PhotosPuky_2023-10-25-16-36.txt -OutFile "G:\service INFORMATIQUE 5IVE\BIKE OFFICE\IMPORT_FICHIERS\Matrices internes\MACROS_ESTEVEZ\V5\PhotosPuky_2023-10-25-16-36.txt"

Invoke-WebRequest -Uri ftp://login:mdp@ftp3.culturevelo.com | select "*.txt"
#Invoke-Item ftp://login:mdp@ftp3.culturevelo.com/*PhotosPuky

Get-ChildItem -LiteralPath "G:\service INFORMATIQUE 5IVE\BIKE OFFICE\IMPORT_FICHIERS\Matrices internes\MACROS_ESTEVEZ\V5"

Write-Host "_________________________________________________" -ForegroundColor Green
Write-Host "            SCRIPT TERMINATED                    " -ForegroundColor Green
Write-Host "_________________________________________________" -ForegroundColor Green


Dans la première ligne contenant Invoke-WebRequest, le fichier "PhotosPuky_2023-10-25-16-36.txt" est un exemple pris. Cela fonctionne bien à propos. Mais je souhaite récupérer dans ce serveur FTP seulement les fichiers .txt ou un fichier en particulier de même extension. 
Exemple "*PhotosPuky*" pour seulement les fichiers dont l'entête commence comme tel. Je n'ai pas trouvé de solution. Ayant fait quelques recherches, je vois que l'on peut affiner le traitement avec Where-Object mais je n'ai pas réussi à trouver une piste. 

Merci de votre aide. 
 
Dernière édition: il y a 5 mois 3 semaines par JeSuisMoi.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 mois 3 semaines #33591 par Arnaud Petitjean
Bonjour,

Personnellement je n'arrive pas à récupérer quoi que ce soit depuis mon serveur FTP avec la commande Invoke-WebRequest. Mais j'ai pas eu le temps de trop comprendre pourquoi.

Voici en tout cas un morceau de code qui a marché pour moi et qui m'a récupéré tous les fichiers situés à la racine de mon serveur FTP :
# Spécifiez les informations de connexion FTP
$ftpServer = "ftp://exemple.com"
$ftpUsername = "votre_nom_utilisateur"
$ftpPassword = "votre_mot_de_passe"

# Créez l'objet FtpWebRequest pour la liste du répertoire
$request = [System.Net.FtpWebRequest]::Create("$ftpServer/")
$request.Credentials = New-Object System.Net.NetworkCredential($ftpUsername, $ftpPassword)
$request.Method = [System.Net.WebRequestMethods+Ftp]::ListDirectory

# Envoyez la demande et obtenez la réponse
$response = $request.GetResponse()
$reader = New-Object System.IO.StreamReader($response.GetResponseStream())
$listing = $reader.ReadToEnd()

# Affichez le contenu du serveur FTP
Write-Output $listing

# Fermez la réponse
$response.Close()

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 mois 3 semaines - il y a 5 mois 3 semaines #33595 par JeSuisMoi
Bonjour,

J'ai parcouru votre solution. Je prends en considération votre travail contribuant à mes recherches d'optimisation de mon travail d'automatisation. 
Je vous en remercie. 
Pour votre gouverne, la commande WGET en tant que client FTP dénué d'interface a un équivalent en POWERSHELL : Invoke-WebRequest.

Voici comment l'utiliser : cas d'un transfert de fichier d'un serveur FTP vers un dossier d'un autre serveur). 
Invoke-WebRequest -Uri "ftp://login:passworld@ftp3.culturevelo.com/ART_SR20 AU15_SAVOYE.txt" -OutFile "G:\service INFORMATIQUE 5IVE\BIKE OFFICE\IMPORT_FICHIERS\Matrices internes\MACROS_ESTEVEZ\TRIALS\ART_SR20 AU15_SAVOYE.txt"
Cela fonctionne. Ne pas oublier de copier le nom du fichier assorti de son extension, comme vous le voyez ci-dessus, dans l'emplacement se trouvant dans le serveur FTP (dans le cas d'un transfert à partir d'un serveur FTP) puis dans le dossier de travail final sinon cela ne fonctionne pas. 

Julien.
Dernière édition: il y a 5 mois 3 semaines par JeSuisMoi.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 mois 3 semaines #33596 par Arnaud Petitjean
Salut,

La commande wget n'est pas native sous Windows. Tu travailles sur quelle plateforme ?

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 mois 3 semaines - il y a 5 mois 3 semaines #33597 par JeSuisMoi
Monsieur,

J'utilise WINDOWS10, je ne suis pas habitué à utiliser LINUX. De surcroît, l'entreprise pour laquelle je travaille utilise WINDOWS. Il y a tout de même une salle dédiée à LINUX. 

Julien. 
Dernière édition: il y a 5 mois 3 semaines par JeSuisMoi.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 mois 3 semaines #33598 par Arnaud Petitjean
Donc tu as installé wget...

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.115 secondes
Propulsé par Kunena