Blog du grouik - Mot-clé - batch - CommentairesLe blog du grouik. Memos d'un Admin sys linux windows, logiciels libres, imprimante 3D2024-01-16T12:12:27+00:00Gniearkurn:md5:87c2396a7331cd5cd18f8751d216ec7bDotclearWindows batch Automatiser le transfert par FTP - Melourn:md5:667553a4d2e96b20de594c4177de24ae2017-08-14T13:05:04+00:002017-08-14T13:05:04+00:00Melo<p>Bonjour !<br />
voila j'ai un besoin urgent, si quelqu'un peu me proposé une solution (scripts) par rapport à mon cas:<br />
j'ai une machine locale et plusieurs répertoires distants dont je veux transférer les fichiers automatiquement entre les ces machines et que les fichiers copies doivent être supprimer après le transfert du répertoire de source.<br />
NB: j'ai un répertoire source (machine locale) et plusieurs répertoires de destination (machine distantes)</p>
<p>Merci</p>Windows batch Automatiser le transfert par FTP - Marcurn:md5:d1261fa4d1844041d35ddcff065db58a2017-06-30T14:12:57+00:002017-06-30T14:15:40+00:00Marc<p>Hello Cris,<br />
Si tu souhaites extraire un fichier jar, tu ouvres un prompt (démarrer et exécuter "CMD")<br />
et tu tapes: java -jar <le nom du fichier> (c:\mon-fichier.jar). Au préalable, il me semble qu'il est nécessaire d'installer javaruntime :)</p>
<p>Vive le blog du grouik au passage !</p>Windows batch Automatiser le transfert par FTP - Crisurn:md5:dd57f2d1909e69607ac5e7beac13eeb32017-06-27T15:15:19+00:002017-06-27T15:15:19+00:00Cris<p>Bonsoir,<br />
je réagis à cet article très intéressant (bravo) car je rencontre un souci, je voulais savoir comment faire pour décompresser un fichier .jar lequel je n'ai pas trouvé de solution à ce jour.<br />
Merci d'avance</p>Windows batch Automatiser le transfert par FTP - gniearkurn:md5:828d31e8e6f9508853726c2676f5e3d12017-04-27T07:14:58+00:002017-04-27T07:14:58+00:00gnieark<p>Manuel><br />
Heu...</p>
<p>Donne nous plus d'infos pour qu'on t'aide.</p>
<p>Type de ftp (passif/actif)</p>
<p>Les fichiers que tu souhaites envoyer doivent-ils écraser ceux sur la destination ?</p>
<p>Y a -til une regle de nomage, une architecture de fichiers plus précise?</p>
<p>etc....</p>Windows batch Automatiser le transfert par FTP - manelurn:md5:3afa5f03644f41965adfa53d36b0daec2017-04-20T08:48:03+00:002017-04-20T08:48:03+00:00manel<p>bonjour j'ai gros soucis pour écrire un script .bat, je dois automatiser l'envoi des fichier .xml vers le serveur DOCAPOST FAST, je peux le faire manuellement sur FileZilla Client, mais je n'arrive pas à écrire le script.<br />
pouvez vous m'aider ? et m'indiquer des pistes ...</p>Windows batch Automatiser le transfert par FTP - Tonyurn:md5:5f0d9b5159ee047aa6acbbdbd8c330cb2017-03-15T08:50:22+00:002017-03-15T08:50:22+00:00Tony<p>Bonjour,</p>
<p>Super merci pour le script, je viens de l'exécuter mais le FTP sur lequel je souhaite envoyer est en mode passif et chiffrement : connexion FTP implicite sur TLS.</p>
<p>Savez-vous quel paramètre dois-je intégrer à la ligne ? j'ai ajouté le -P 990 :</p>
<p>::Envoi de chaque fichier sur le ftp<br />
%rep_bin%\curl.exe -u %user_ftp%:%pwd_ftp% -Q "+CWD %path_ftp%" -T "%%f" <a href="ftp://%ip_ftp%/" title="ftp://%ip_ftp%/" rel="ugc nofollow">ftp://%ip_ftp%/</a> -P 990</p>
<p>Mais cela ne fonctionne pas....</p>
<p>Merci d'avance</p>
<p>Tony</p>Windows batch Automatiser le transfert par FTP - gniearkurn:md5:7aeba11292d1cdf3cf7168108e21212f2017-01-22T13:08:29+00:002017-01-22T13:08:29+00:00gnieark<p>hervix> Oui, c'est possible. Un exemple ici de suppression de fichiers vieux de N jours: <a href="http://stackoverflow.com/questions/51054/batch-file-to-delete-files-older-than-n-days" title="http://stackoverflow.com/questions/51054/batch-file-to-delete-files-older-than-n-days" rel="ugc nofollow">http://stackoverflow.com/questions/...</a> sauf qu'au lieu de supprimmer, il faut que tu adaptes le script pour qu'il fasse ce que tu veux d'autre.</p>
<p>urgenmib> Zut, je n'avais pas vu ton commentaire plus tôt.<br />
Heu pour ton problème, ça me parait bizare. Je n'ai pas de windows sous la main pour tester si c'était sensible à la casse. j'essaie de faire ça prochainement</p>Windows batch Automatiser le transfert par FTP - ugenmiburn:md5:74f309d79eba39b6d18f6869a83e3f8c2016-11-24T21:07:27+00:002016-11-24T21:07:27+00:00ugenmib<p>Bonsoir,<br />
je réagis à cet article très intéressant (bravo) car je rencontre un souci avec la commande ftp pour lequel je n'ai pas trouvé de solution à ce jour.</p>
<p>Très simplement dans un .bat je veux automatiser des transferts, mon script débute par la commande ftp qui fait appel à un ficher contenant les paramètres de connection et commandes ftp :</p>
<p>ftp -i -s:cmdftp.txt</p>
<p>Dans cmdftp.txt il y a :<br />
open xxx.xx. (adresse IP)<br />
user UtiLIsateur MotDePAsse</p>
<p>puis les commandes ftp.</p>
<p>Mon problème est que ni les majuscules du nom d'utilisateur, ni celle du mot de passe ne sont passées à la commande ftp (toutes les lettres sont en minuscule) en conséquence le serveur refuse la connexion ne reconnaissant pas les paramètres!</p>
<p>Avez-vous déjà rencontré ce genre de souci? Avez-vous une solution?</p>
<p>Merci d'avance,</p>Windows batch Automatiser le transfert par FTP - hervixurn:md5:5ede30613d7b0792b7d31f0bf6fc8a032016-11-11T02:29:11+01:002016-11-11T02:29:11+01:00hervix<p>Bonjour,</p>
<p>très intéressant ce script, y a t-il un moyen pour rajouter une notion de date pour le transfert des fichiers?</p>
<p>J'aimerais pouvoir transférer sur un ftp des dossiers qui n'ont jamais le même nom après une période donnée, genre tu me transfères les dossiers plus vieux que 3 mois et ensuite tu les effaces de l'emplacement source</p>
<p>bien cordialement</p>Windows batch Automatiser le transfert par FTP - Nymurn:md5:8f0f726c834f8d69921c5c351b17acd12014-04-23T16:25:12+02:002014-04-23T15:25:12+02:00Nym<p>Merci pour vos exemple qui m'ont permis d'y voir plus clair.<br />
Par contre j'aurais un bémol sur la partie:</p>
<p>::Si le ping est négatif, quitter et logguer<br />
ping -n 1 %ip_ftp%<br />
if %errorlevel%==1 goto NO_LINK_SERV</p>
<p>Car en test ma passerelle m'a dit que le serveur était injoignable mais le ping n'a pas retourné de valeur d'erreur.</p>Windows batch Automatiser le transfert par FTP - Gniearkurn:md5:e8ddc0bd2ef81bb2405fa9908c439d4c2013-09-13T12:03:37+02:002013-09-13T11:06:01+02:00GniearkHello, pour que ça logue ajoute la ligne suivante dans tes deux boucles for:
<br/><br/>
<code>echo "%date%|%time:~0,2%h%time:~3,2% : fichier %%f -- envoyé " >>%rep_log%/envois.log</code><br/>
<br/>
Comme ceci:<br/>
</p><pre>
::Envoi du fichier reglement sur le seveur ftp
FOR %%f IN (reg*.csv) DO (
::Envoi du fichier fichier sur le ftp
%rep_bin%\curl.exe -u %user_ftp%:%pwd_ftp% -Q "+CWD reglements" -T "%%f" ftp://leftpf.om/
::Log it:
echo "%date%|%time:~0,2%h%time:~3,2% : fichier %%f -- envoyé " >>%rep_log%/envois.log
)
</pre><p>
PS fais attention, j'ai fait le choix de changer le nom de ton FTP dans ma réponse et la tienne, pense à le remettre dans ton, scriptWindows batch Automatiser le transfert par FTP - chadolurn:md5:e7d13704de22fc819aedf318a48eeb0e2013-09-12T15:18:43+02:002013-09-13T11:06:49+02:00chadol<p>Re bonjour,<br />
Finalement ca fonctionne.<br />
Le transfert se passe bien et les fichiers sont déplacés dans le dossier \archives.</p>
<p>Mais le fichier log n'enregistre aucun événement...</p>
<p>Je renvoie le script complet pour info :</p>
<p>::Extraction de données dans la base oracle de FV10<br />
::Envoie le contenu d un repertoire sur un dossier FTP. Ecrase les fichiers déja existants si des noms sont concordants<br />
::Ce script utilise Curl (pour le ftp). La licence se situe dans le dossier bin<br />
cls<br />
::On met un titre au shell<br />
@title Envoie le contenu d un repertoire sur un dossier FTP. Ecrase les fichiers déja existants si des noms sont concordants<br />
::Supprimer les retours écran<br />
@echo off</p>
<p>::PARTIE EXTRACTION DES DONN2ES DANS FV10<br />
sqlplus compta/COMPTA@GALBV-OAS-01.FV10 @GPM_EXPORT_FACT_EDI.sql<br />
sqlplus compta/COMPTA@GALBV-OAS-01.FV10 @GPM_EXPORT_RGL_EDI.sql</p>
<p>::#### VARIABLES####<br />
::PARTIE FTP<br />
set user_ftp=xxxxxxx<br />
set pwd_ftp=xxxxxxxx<br />
set ip_ftp=xxxxxxxxx<br />
<br />
<br />
::DOSSIER LOCAL A TRANSFERER<br />
set local_path=%cd%\EDIFAPROD<br />
<br />
::Définition des Chemins<br />
::répertoire racine<br />
set rep_root=%cd%<br />
::chemin des binaires<br />
set rep_bin=%cd%\bin<br />
::chemin des fichiers de journaux<br />
set rep_log=%cd%\log<br />
<br />
::Si le ping est négatif, quitter et logguer<br />
ping -n 1 %ip_ftp%<br />
if %errorlevel%==1 goto NO_LINK_SERV<br />
<br />
cd %local_path%<br />
<br />
::Envoi du fichier reglement sur le seveur ftp<br />
FOR %%f IN (reg*.csv) DO (<br />
::Envoi du fichier fichier sur le ftp<br />
%rep_bin%\curl.exe -u %user_ftp%:%pwd_ftp% -Q "+CWD reglements" -T "%%f" ftp://leftp.com/<br />
)</p>
<p>::Envoi du fichier facture sur le seveur ftp<br />
FOR %%f IN (fac*.csv) DO (<br />
::Envoi du fichier fichier sur le ftp<br />
%rep_bin%\curl.exe -u %user_ftp%:%pwd_ftp% -Q "+CWD factures" -T "%%f" ftp://leFtp.com/<br />
)</p>
<p>::On déplace vers le repertoire archives, les fichiers après l envoi car on en a plus besoin<br />
move /y \EDIFAPROD\*.CSV \EDIFAPROD\Archives<br />
GOTO FIN</p>
<p><br />
:NO_LINK_SERV<br />
::le serveur ne répond pas au ping<br />
echo "%date%|%time:~0,2%h%time:~3,2% : Le serveur FTP n'est pas joignable - Aucun transfert effectué" >>%rep_log%/connexions.log<br />
<br />
:FIN<br />
::On quitte</p>Windows batch Automatiser le transfert par FTP - chadolurn:md5:22b1ba60798b45878254bc70dbaefecd2013-09-12T08:11:46+02:002013-09-12T07:11:46+02:00chadol<p>Je n'arrive plus à déplacer les fichiers .csv dans le repertoire \archives après transfert ...</p>Windows batch Automatiser le transfert par FTP - chadolurn:md5:76644b42988c4559f68103ad02b85d1e2013-09-12T07:42:55+02:002013-09-12T06:42:55+02:00chadol<p>Bonjour,</p>
<p>Ca marche super bien sur mon poste en local. Je le test en prod dans la journée et reviens vers toi.</p>
<p>Encore merci.</p>Windows batch Automatiser le transfert par FTP - gniearkurn:md5:a5d2b44c7d7411fa7fc35a5004dd112f2013-09-11T22:30:08+02:002013-09-11T21:30:08+02:00gnieark<p>faudra que je prenne le temps de me pencher sur l'amélioration de l'interface de rédaction des commentaires sur ce blog</p>Windows batch Automatiser le transfert par FTP - Gniearkurn:md5:5df3185787475f6799ca274d1d3cb31e2013-09-11T22:26:00+02:002013-09-11T21:28:28+02:00GniearkChadol, je vois le problème.<br/>
<br/>
Dans votre script la wildcard est dans un paramétre de la commande curl (et il n'a pas l'air de le gérér) <br/>
<br/>
remplacez la ligne:<br/>
<code>
%rep_bin%\curl.exe -u %user_ftp%:%pwd_ftp% -T "C:\EDIFAPROD\reg*.csv" ftp://serveurFTP.com/Mreglements</code>
<br/>
par les trois lignes suivantes:<br/>
<code>FOR %%f IN (reg*.csv) DO (<br/>
::Envoi du fichier fichier sur le ftp<br/>
%rep_bin%\curl.exe -u %user_ftp%:%pwd_ftp% -Q "+CWD Mreglements" -T "%%f" ftp://VotreServeurFtp/<br/>
)</code><br/>
<br/>
<br/>
et Idem pour les factures<br/>
<br/>
Je n'ai pas de windows sous la main pour vérifier. Je ne suis pas certain que le batch permette de faire "FOR %%f IN (reg*.csv)". C'est à testerWindows batch Automatiser le transfert par FTP - chadolurn:md5:1362a8a58a5287f96df5f9a20a34c6362013-09-11T21:56:58+02:002013-09-11T21:16:17+02:00chadol<p>::#### VARIABLES####<br />
::PARTIE FTP<br />
set user_ftp=xxxxxxx<br />
set pwd_ftp=xxxxxxx</p>
<p><br />
::Définition des Chemins<br />
::répertoire racine<br />
set rep_root=%cd%<br />
::chemin des binaires<br />
set rep_bin=%cd%\bin<br />
::chemin des fichiers de journaux<br />
set rep_log=%cd%\log<br />
<br />
::Si le ping est négatif, quitter et logguer<br />
ping -n 1 %ip_ftp%<br />
if %errorlevel%==1 goto NO_LINK_SERV<br />
<br />
CD C:\EDIFAPROD\<br />
<br />
::Envoi du fichier règlement du jour sur le serveur ftp<br />
%rep_bin%\curl.exe -u %user_ftp%:%pwd_ftp% -T "C:\EDIFAPROD\reg*.csv" ftp://serveurFTP.com/Mreglements</p>
<p>::Envoi du fichier règlement du jour sur le serveur ftp<br />
%rep_bin%\curl.exe -u %user_ftp%:%pwd_ftp% -T "C:\EDIFAPROD\fact*.csv" ftp://serveurFTP.com/Mfactures"</p>
<p>::On déplace vers le répertoire archives, les deux fichiers .csv du jour</p>
<p>move /y \EDIFAPROD\*csv \Archives<br />
GOTO FIN<br />
<br />
:NO_LINK_SERV<br />
::le serveur ne répond pas au ping<br />
echo "%date%|%time:~0,2%h%time:~3,2% : Le serveur FTP n'est pas joignable - Aucun transfert effectué" >>%rep_log%/connexions.log<br />
<br />
:FIN<br />
::On quitte</p>Windows batch Automatiser le transfert par FTP - gniearkurn:md5:7f80505b25f3ff36b3d97113d71873042013-09-11T20:39:08+02:002013-09-11T19:39:08+02:00gnieark<p>Chadol, je ferai un essai de filtres plus compliqués à tete reposée demain. je vous tiens au courant. Mais n'hésitez pas à copier votre script en commentaire (en masquant les mots de passe), que je puisse mieux voir.</p>Windows batch Automatiser le transfert par FTP - chadolurn:md5:c8173872ceb11eccc4a47df239068f3e2013-09-11T20:17:20+02:002013-09-11T19:17:20+02:00chadol<p>Bonjour,</p>
<p>Ma problématique est la suivante :</p>
<p>J'ai deux fichiers qui sont générés tous les soire (exemple le 11/09/2013)</p>
<p>fichier 1 = facture11092013.csv<br />
fichier 2 = reglement11092013.csv</p>
<p>Je veux tous les soirs après génération de ces fichiers les exporter sur un serveur ftp dans deux repertoire differents (/reglement/ et /facture/) et ensuite apres export déplacer les fichiers sources dans le repertoire archive du serveur d'origine.</p>
<p>En utilisant la méthode avec curl en mettant comme noms des fichiers à transferer reglement*.csv et facture*.csv ca ne fonctionne pas.</p>Windows batch Automatiser le transfert par FTP - gniearkurn:md5:6529c716ccaf3392552bb5724949ec832013-01-21T16:42:55+01:002013-01-21T16:42:55+01:00gnieark<p>Bonsoir Alexandre,</p>
<p>Oui on peut. en FTP la commande pour télécharger un fichier est "GET"</p>
<p>Donc dans le fichier .ftp, à la place du "put plop.txt" Mettez "get fichier.txt" pour télécherger dans le repertoire courant le fichier "fichier.txt" qui se trouve sur le serveur ftp.</p>