sauvegarde par ftp avec date/heure dans le nom
Posté : 25 nov. 2011 20:10
yop tout le monde, je suis nouveau ici et je me remets doucement dans ce très cher DOS 
J'ai dernièrement écrit un script dos qui fait une copie sur un pc de fichiers venant d'un pc sur le réseau....Actuellement je créé un dossier de la forme toto25112011HEURE175, ce qui en fait un un dosssier toto créé le 25 11 à 17h5x
Pas tres pratique car si mon temps de zippage me fait passer à la dizaine de minutes d'après je me foire avec ma ligne de commande cd c:.....(voir dans mon batch ci dessous)
seulement je me dis que ce serait plus pratique de faire un truc du genre toto25112011numéroX avec X une valeur incrémentée. Et cette valeur viendrait d'une variable incrémentée à chaque fois qu'on lance mon batch pour plus de clareté je mets mon batch...
rem creation du dossier avec la date du jour dans le nom
mkdir pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%
rem copie réseau dans le dossier créé à la date du jour
copy g:\iwprosp\fich_a\*.* c:\pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%
rem creation du fichier rar dans le dossier date du jour parce que qu'on ne peut pas envoyer par ftp dos un dossier, on peut un ou plusieurs fichiers
rem de meme qu'on ne peut pas créer de dossier a distance sur le ftp avec la date du jour.
c:\rar.exe a c:\pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%.rar c:\pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%\*.*
rem on se déplace dans le dossier ou se trouve le rar du jour
cd c:\pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%\
rem on lance la connexion ftp dos en automatique, c'est a dire les données d'acces au ftp sont écrites dans le fichier transfert.txt
ftp -i -s:c:\transfert.txt
Donc j'aimerais avoir en début de batch une variable qui est incrémentée à chaque fois que le script est lancé. Une variable locale ne fonctionne pas puisque dès que l'on ferme le cmd elle est effacée, à priori.
Merci.
ps: j'ai pensé à faire un truc du genre
avoir un fichier increment.txt avec juste un chiffre dedans.
et en début de mon batch, utiliser un for /f ....FIND le chiffre dans ce increment.txt, placer le résultat dans une variable i à la ligne juste en dessous.
Et en fin de ce batch echo i++>>increment.txt
Mais je bloque sur la bonne rédaction tout en me demandant si c'est la bonne solution.

J'ai dernièrement écrit un script dos qui fait une copie sur un pc de fichiers venant d'un pc sur le réseau....Actuellement je créé un dossier de la forme toto25112011HEURE175, ce qui en fait un un dosssier toto créé le 25 11 à 17h5x
Pas tres pratique car si mon temps de zippage me fait passer à la dizaine de minutes d'après je me foire avec ma ligne de commande cd c:.....(voir dans mon batch ci dessous)
seulement je me dis que ce serait plus pratique de faire un truc du genre toto25112011numéroX avec X une valeur incrémentée. Et cette valeur viendrait d'une variable incrémentée à chaque fois qu'on lance mon batch pour plus de clareté je mets mon batch...
rem creation du dossier avec la date du jour dans le nom
mkdir pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%
rem copie réseau dans le dossier créé à la date du jour
copy g:\iwprosp\fich_a\*.* c:\pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%
rem creation du fichier rar dans le dossier date du jour parce que qu'on ne peut pas envoyer par ftp dos un dossier, on peut un ou plusieurs fichiers
rem de meme qu'on ne peut pas créer de dossier a distance sur le ftp avec la date du jour.
c:\rar.exe a c:\pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%.rar c:\pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%\*.*
rem on se déplace dans le dossier ou se trouve le rar du jour
cd c:\pierre\toto%date:~0,2%%date:~3,2%%date:~6,4%HEURE%time:~0,2%%time:~3,1%\
rem on lance la connexion ftp dos en automatique, c'est a dire les données d'acces au ftp sont écrites dans le fichier transfert.txt
ftp -i -s:c:\transfert.txt
Donc j'aimerais avoir en début de batch une variable qui est incrémentée à chaque fois que le script est lancé. Une variable locale ne fonctionne pas puisque dès que l'on ferme le cmd elle est effacée, à priori.
Merci.
ps: j'ai pensé à faire un truc du genre
avoir un fichier increment.txt avec juste un chiffre dedans.
et en début de mon batch, utiliser un for /f ....FIND le chiffre dans ce increment.txt, placer le résultat dans une variable i à la ligne juste en dessous.
Et en fin de ce batch echo i++>>increment.txt
Mais je bloque sur la bonne rédaction tout en me demandant si c'est la bonne solution.