UPLOADER DES FICHIERS AVEC UN BATCH

Pour uploader des fichiers en un clic de souris, la création d'un batch permet d'automatiser l'utilisation de la commande FTP en l'associant à un fichier texte regroupant les commandes et le mot de passe du compte FTP à mettre à jour. Le fichier pris ici comme exemple est cette page elle-même.
Regrouper dans un même dossier :

- le batch : Upload.cmd
- le fichier de commandes ftp : script.txt
- le fichier à uploader (cette page) : Uploader_des_fichiers_avec_un_batch.htm

Contenu du batch Upload.cmd :
ftp -n -s:script.txt
-n permet de ne pas ouvrir de session tout de suite et d'attendre les commandes du fichier script.txt

Contenu du fichier script.txt :
open ftpperso.free.fr
user fspsa
123456789 (mot de passe du compte ftp)
hash
bin
put "Uploader_des_fichiers_avec_un_batch.htm"
bye


RÉSULTAT
Admirer le résultat:
http://fspsa.free.fr/Uploader_des_fichiers_avec_un_batch.htm
:o)


RÉFÉRENCE
Sauvegarder des fichiers sur un serveur ftp grâce à un batch
http://geeksasylum.free.fr/articles/reseaux/sauvegarder_fichiers_sur_serveur_ftp_grace_a_un_batch/part01.htm


AIDES SUR LA COMMANDE FTP

http://www.hotline-pc.org/dosreseau.htm
File Transfer Protocol selon fr.wikipedia
How to use FTP from the command line
Liste alphabétique des commandes
FTP [-v] [-d] [-i] [-n] [-g] [-s:NomFichier] [-a] [-w:TailleTampon] [-A] [Hôte]

Démarrer>Exécuter>HH NTCMDS.CHM::/ftp.htm
Ou taper FTP dans Aide et Support

En ligne de commandes, taper ftp -?   (/? ne marche pas)
Ou taper ftp, puis, à l'invite ftp>
taper ? ou help

Aide sur une sous-commande:
sous l'invite ftp> taper la commande précédée de ?
Exemple: ? hash ou ? ha
bye pour quitter

Pour se connecter au serveur FTP de FREE.FR taper la commande:
ftp ftpperso.free.fr
Taper bye pour fermer la connexion
On ne peut pas se connecter directement avec la commande à un site ftp. Il faut passer par un fichier de commandes séparé. Voir l'exemple plus haut avec script.txt
ATTENTION: dans script.txt, le mot de passe apparaît en clair.

 

Upload de plusieurs fichiers à la fois

Le script qui suit permet d'uploader plusieurs fichiers en les sélectionnant au préalable dans Explorer à l'aide de la touche CTL et de la souris, puis en faisant glisser cette sélection sur le batch.
Ce qui est en rouge est à adapter :
- ftpperso.free.fr  est le serveur ftp de Free. Modifier selon ...
- fspsa est le nom de ce site et qui sert d'exemple. Modifier selon ...
- 123456789 est le mot de passe (bidon) du compte ftp. Modifier selon ...
- http://fspsa.free.fr est le nom de ce site qui sert d'exemple. Modifier selon ...

Principe :
On crée le fichier temporaire contenant la liste des commandes ftp à effectuer. Il est nommé bidon.ftp et on l'écrit à coup de commandes echo.
Une boucle récupère les noms des fichiers passés en argument. Ces noms de fichiers à uploader sont ajoutés à bidon.ftp
Si le premier nom (%1) est vide, c'est qu'on a lancé le batch sans argument, et on va à l'étiquette VIDE pour afficher un message d'erreur.

:BOUCLE
Les arguments passés au batch sont inscrits dans bidon.ftp
Si plus de nom (if "%x%"=="") c'est qu'il n'y a plus d'arguments, tous les fichiers ont été traités. Et on passe à la SUITE.

:SUITE
On complète le fichier bidon.ftp et on l'exécute avec la commande ftp -n -s:§TEMP%\bidon.ftp

:VIDE
Le premier nom de fichier (%1) était vide parce qu'on a lancé le batch sans argument : affichage d'un message d'erreur, il faut glisser au moins un fichier sur le batch.

:END
Mettre ici l'action que l'on désire faire lorsque le batch a été exécuté correctement; par exemple on ouvre le site dans le navigateur Internet avec la commande start pour voir le résultat. Adapter selon...

:FIN
Destruction du fichier de commandes (il contient le mot de passe en clair) suivi de la commande pause pour permettre de visualiser l'exécution avant de fermer la fenêtre en appuyant sur une touche.

 

BATCH (à adapter) :

echo off
echo open ftpperso.free.fr>%TEMP%\bidon.ftp
echo user fspsa>>%TEMP%\bidon.ftp
echo 123456789>>%TEMP%\bidon.ftp
echo hash>>%TEMP%\bidon.ftp
echo bin>>%TEMP%\bidon.ftp

:Verification, il faut au moins un fichier
if "%1"=="" goto VIDE

:BOUCLE
echo put %1>>%temp%\bidon.ftp
shift
if "%1"=="" goto SUITE
goto BOUCLE



:SUITE
echo bye>>%TEMP%\bidon.ftp
ftp -n -s:%TEMP%\bidon.ftp
if errorlevel 1 goto erreur
echo C'EST FINI
goto end

:VIDE
echo;
echo ERREUR : PAS DE FICHIER A UPLOADER !
echo Il faut glisser un fichier sur le batch
goto FIN

:END
start http://fspsa.free.fr
goto FIN

:ERREUR
echo ERREUR INDETERMINEE

:FIN
del %TEMP%\bidon.ftp
pause

 

En complément :
Envoyer des répertoires entiers avec leurs sous-répertoires en FTP
Pas testé, mais le monsieur a dit : Ça maaaaarche !

 

 

Remerciements

Merci à Guillaume Ryder, l'auteur de Clavier+, pour l'utilisation d'une boucle et de la commande SHIFT.

 

Liens

http://www.ponx.org/ponx/batch
http://www.hotline-pc.org/batch.htm
http://www.hotline-pc.org/batchscripts.htm
http://groups.google.fr/group/microsoft.public.fr.windowsxp/search?&q=ftp
http://groups.google.fr/group/microsoft.public.fr.scripting/search?&q=ftp


Merci d'avoir lu jusqu'ici !
Retour au début
Les restes du site
JF (Jean-François)
 

compteur Free
 Créée le 11/12/2005