<!--
  canonical-url: https://www.avonture.be/fr/blog/winscp-download-recursively-files
  published:     2024-08-22
  This is a static plain-Markdown mirror generated at build time.
  Visit the canonical URL above for the fully rendered page, with images and interactive components.
-->

# WinSCP - Télécharger récursivement les fichiers d'une extension donnée

> Apprenez à utiliser la fonction de scripting de WinSCP pour télécharger récursivement les fichiers d'une extension spécifique (comme .php) depuis votre serveur FTP/SFTP. Avec un exemple de script simple.

---
![WinSCP - Télécharger récursivement les fichiers d'une extension donnée](/img/v2/winscp.webp)

**TL;DR**

Cet article partage un script d'automatisation WinSCP qui télécharge récursivement tous les fichiers correspondant à une extension donnée (par ex. `.php`) depuis un serveur FTP/SFTP distant vers un dossier local, lancé via `winscp.com /script=...` — pratique pour récupérer un type de fichier précis sur tout un site et l'analyser en local.

Le client FTP [WinSCP](https://winscp.net/) prend en charge le scripting, comme on peut le lire sur <https://winscp.net/eng/docs/guide_automation>.

Dans une vie antérieure, j'ai souvent eu besoin de télécharger un certain type de fichier : me connecter à un serveur FTP et récupérer les fichiers PHP en local pour les analyser.

*Tout télécharger juste pour y faire une recherche est parfois exagéré : [Search your FTP server at lightning speed](/blog/php-grep-searching-at-lightning-speed) fait la recherche **sur** le serveur. Et une fois les fichiers en local, [jakzal/phpqa](/blog/php-jakzal-phpqa) vous donne tous les outils d'analyse PHP sans rien installer.*

Comme WinSCP permet l'automatisation, il est facile d'écrire un petit script pour faire exactement ça.

À titre d'exemple, nous allons donc télécharger tous les fichiers `.php` d'un host.

## Le script {#the-script}

Le script est plutôt simple, si vous voulez bien me croire :

**C:\temp\download.txt**

```txt
lcd "c:\temp"

open ftp://USERNAME:PASSWORD@HOST_OR_IP/

cd /public_html

option transfer ascii

get -filemask:*.php *

close

exit
```

## Comment l'utiliser {#how-to-use}

1. Sauvegardez le script ci-dessus sous, par exemple, `C:\temp\download.txt`
2. Éditez le script et apportez ces modifications :
   1. L'endroit où les fichiers doivent être téléchargés, le dossier local (ligne `lcd "c:\temp"`)
   2. Si besoin, remplacez `ftp` par `sftp`
   3. `USERNAME` : le nom d'utilisateur FTP
   4. `PASSWORD` : le mot de passe associé à ce compte
   5. `HOST_OR_IP` : le nom d'host FTP ou son IP
   6. Le dossier distant depuis lequel les fichiers doivent être téléchargés (ligne `cd /public_html`)
   7. L'extension de fichier à télécharger (si ce n'est pas `.php`) (ligne `get -filemask:*.php *`)
   8. Sauvegardez le script
3. Ouvrez une session DOS
4. Lancez `cd c:\temp`
5. Lancez `winscp.com` depuis là : tapez `"C:\Program Files (x86)\WinSCP\WinSCP.com" /script="c:\temp\download.txt"`

Si tout est correctement configuré, WinSCP ouvrira une session terminal et commencera à télécharger chaque fichier `.php` trouvé dans votre dossier distant (sous-dossiers inclus).
