Bonjour,

D'un faible niveau en batch, j'ai commencé à écrire un script de sauvegarde. Celui-ci sauvegarde une base de données, compresse le fichier et le sauvegarde par FTP.

Au départ, j'ai fait une vérification via le fichier log renvoyé par le FTP de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
echo user xxxx> ftpcmd.tmp
echo xxxx>> ftpcmd.tmp
echo prompt>> ftpcmd.tmp
echo bin>> ftpcmd.tmp
echo put *.7z>> ftpcmd.tmp
rem un seul fichier à uploader mais de nom variable donc j'ai mis *.7z par facilité
echo quit>> ftpcmd.tmp
ftp -n -s:ftpcmd.tmp ftp.ftp.com >> bak-%date_cre:~6,4%%date_cre:~3,2%%date_cre:~0,2%-%heure: =0%.log
rem variables date_cre et heure définies en amont en fonction de la date et de l'heure).
del ftpcmd.tmp

find /c "226 T" bak-%date_cre:~6,4%%date_cre:~3,2%%date_cre:~0,2%-%heure: =0%.log
rem recherche sur la chaîne 226 T qui peut être 226 Téléchargement terminé ou 226 Transfer complete
if errorlevel 1 goto err_transf
set err=0
del *.7z
goto fin_trait_err
:err_transf
set err=1
:fin_trait_err
Cela fonctionne très bien à priori. Mais certains fichiers sont très gros (10 Go) et donc j'ai donc rajouté un découpage des fichiers à uploader.

Pour faire mon upload, je passe donc par une boucle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for %%X in (*.7z.*) do (
set err=0
echo user xxxx> ftpcmd.tmp
echo xxxx>> ftpcmd.tmp
echo prompt>> ftpcmd.tmp
echo bin>> ftpcmd.tmp
echo put %%X>> ftpcmd.tmp
echo quit>> ftpcmd.tmp
ftp -n -s:ftpcmd.tmp 69901.fr02.ikeepincloud.com > ftp.log
del ftpcmd.tmp
set err=0
find /c "226 T" ftp.log
if errorlevel 1 set err=1
if %err% equ 0 del %%X
del ftp.log
if %err% equ 1 goto fin_inc
)
Mais cela ne fonctionne pas. Si quelqu’un peut m'aider. Et si éventuellement vous avez un bon ouvrage à me conseiller, car oui je trouve des infos sur internet, mais de manière disséminée, et comme je vais sûrement devoir en faire d'autres...

Merci d'avance à tous.