Suis-je trop gourmand?

Le
Roger Combe-Ferrier
Salut la compagnie.
J'ai écrit un batch nommé BkpGestion pour faire une sauvegarde =
incrémentale de mon Répertoire Gestion sur ma clé USB. En voici le =
contenu:

xcopy d:Gestion h:Sauvegarde /i /d /s

Qui marche au poil.
J'en ai écrit un second nommé RmDir En voici le contenu:

rmdir h:Sauvegarde /s /q

Qui efface la sauvegarde.

Je voudrais ajouter dans le premier une variable incrémentée et =
ajouter ensuite une condition IF qui lance le RmDir quand la variable =
atteint une valeur donnée, remette la variable à zéro et relance =
le batch de sauvegarde.

Malgré une grosse dépense de neurones, je n'ai pas trouvé comment =
faire. :-(((

A vos bons cours

Cordialement

--
Le vieux - Exigeant
--

********************************************
Entre le Passé qui nous échappe *
et l'Avenir que nous ne savons pas *
est le Présent avec tous nos Devoirs*
(A. De Gasparin) *
********************************************
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
CriCri
Le #14616821
Salut

Roger Combe-Ferrier a écrit :

Je voudrais ajouter dans le premier une variable incrémentée et
ajouter ensuite une condition IF qui lance le RmDir quand la variable
atteint une valeur donnée



1. c'est sous Win XP?

2. quel sera l'ordre de taille de ta valeur donnée?

3. si c'était plus simple, ça ne te dérangerait pas d'avoir un petit
programme pour complémenter ton batch?

Amicalement
CriCri

--
bitwyse
"Être sage, ça peut être con des fois..."
http://www.le-maquis.net
Roger Combe-Ferrier
Le #14616791
CriCri wrote:
Salut

Roger Combe-Ferrier a écrit :

Je voudrais ajouter dans le premier une variable incrémentée et
ajouter ensuite une condition IF qui lance le RmDir quand la variable
atteint une valeur donnée



1. c'est sous Win XP?

2. quel sera l'ordre de taille de ta valeur donnée?

3. si c'était plus simple, ça ne te dérangerait pas d'avoir un petit
programme pour complémenter ton batch?

Amicalement
CriCri



1. Oui
2. Inférieur à 10
3 Au contraire

Je précise que, gràce à la mise sur le bon chemein faite par Nina, je mets tout ça avec gpedit dans les cripts à l'arrêt.
Jambedours
Le #14614021
"Roger Combe-Ferrier" news:f5rigj$23pb$:



1. Oui
2. Inférieur à 10
3 Au contraire

Je précise que, gràce à la mise sur le bon chemein faite par Nina, je
mets tout ça avec gpedit dans les cripts à l'arrêt.



Ca te conviendrait ça ?

truc.bat
---------
setlocal enabledelayedexpansion
for /f %%i in (c.txt) do set a=%%i%
if %a%= goto efface
if not exist h:sauvegarde md h:sauvegarde
xcopy d:Gestion f:Sauvegarde /i /d /s
set /a a+=1
echo !a!>c.txt
exit

: efface
rmdir h:Sauvegarde /s /q
set /a a-
@echo !a!>c.txt
----------------

Il faut initialiser un fichier c.txt avec un 0 (zero) et bien entendu ne
pas l'effacer par la suite.
Jambedours
Le #14614011
Jambedours 193.252.117.183:

Il faut initialiser un fichier c.txt avec un 0 (zero) et bien entendu ne
pas l'effacer par la suite.




Je n'avais pas lu toutes les données, ni relu le batch

truc.bat
--------
setlocal enabledelayedexpansion
: refait
for /f %%i in (c.txt) do set a=%%i%
if %a%= goto efface
if not exist h:sauvegarde md h:sauvegarde
xcopy d:Gestion h:Sauvegarde /i /d /s
set /a a+=1
echo !a!>c.txt
goto fin

: efface
rmdir h:Sauvegarde /s /q
set /a a-
@echo !a!>c.txt
goto refait

:fin
----------------
CriCri
Le #14613931
Salut

Roger Combe-Ferrier a écrit :

2. Inférieur à 10



Alors je te propose ce qui suit ci-dessous - très simple même si pas
très élégant. Tu le comprendras facilement: il faut y rajouter des blocs
jusqu'au nombre max que tu envisages (ainsi que les valeurs dans le "in
(1 2 3...)".

Utilisation: sg <src> <dst> <nombre>

Il faudrait commencer par ouvrir une fenêtre DOS dans le répertoire où
tu vas placer le '.bat'. Puis saisis:
--------
copy con: 1
<CTRL>'Z'
<CR>
--------

sg.bat
--------
rem bat pour sauvegarder un répertoire jusqu'au nombre de fois choisies
@echo off
rem cherche le fichier-compteur courant
for %%f in (1 2 3) do if exist %%f goto %%f
rem
rem 1er fois
:1
if %3 == 1 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre + 1
del 1
echo x > 2
goto sauve
rem
rem 2ième fois
:2
if %3 == 2 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre + 1
del 2
echo x > 3
goto sauve
rem
rem 3ième fois
:3
if %3 == 3 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre + 1
del 3
echo x > 4
goto sauve
rem fin des blocs, en rajouter ici jusqu'à 10
rem
rem fais une sauvegarde
:sauve
xcopy %1 %2 /i /d /s /r /c /q
goto fin
rem
rem supprime la sauvegarde et recommence de zéro
:efface
rmdir %2 /s /q
del %3
echo $ > 1
:fin
--------

Amitiés
CC

--
bitwyse
"Être sage, ça peut être con des fois..."
http://www.le-maquis.net
CriCri
Le #14405121
CriCri a écrit :

sg.bat
--------



Un petit oubli:
sg.bat
--------
rem bat pour sauvegarder un répertoire jusqu'au nombre de fois choisi
@echo off
rem cherche le fichier-compteur courant
rem rajoute des nombres entre les parenthèses jusqu'au max désiré
for %%f in (1 2 3) do if exist %%f goto %%f
rem
rem 1er fois
:1
if %3 == 1 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre + 1
del 1
echo x > 2
goto sauve
rem
rem 2ième fois
:2
if %3 == 2 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre + 1
del 2
echo x > 3
goto sauve
rem
rem 3ième fois
:3
if %3 == 3 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre + 1
del 3
echo x > 4
goto sauve
rem fin des blocs
rem
rem fais une sauvegarde incrémentielle
:sauve
xcopy %1 %2 /i /d /s /r /c /q
goto fin
rem
rem supprime la sauvegarde et recommence de zéro
:efface
rmdir %2 /s /q
del %3
echo x > 1
goto sauve
:fin
--------

--
bitwyse
"Être sage, ça peut être con des fois..."
http://www.le-maquis.net
CriCri
Le #14405111
CriCri a écrit :

sg.bat



Un petit oubli corrigé:

sg.bat
--------
rem bat pour sauvegarder un répertoire jusqu'au nombre de fois choisi
@echo off
rem cherche le fichier-compteur courant
rem rajoute des nombres entre les parenthèses jusqu'au max désiré
for %%f in (1 2 3) do if exist %%f goto %%f
rem
rem 1er fois
:1
if %3 == 1 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre + 1
del 1
echo x > 2
goto sauve
rem
rem 2ième fois
:2
if %3 == 2 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre + 1
del 2
echo x > 3
goto sauve
rem
rem 3ième fois
:3
if %3 == 3 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre + 1
del 3
echo x > 4
goto sauve
rem fin des blocs, en rajouter ici jusqu'au max désiré
rem
rem fais une sauvegarde incrémentielle
:sauve
xcopy %1 %2 /i /d /s /r /c /q
goto fin
rem
rem supprime la sauvegarde et recommence de zéro
:efface
rmdir %2 /s /q
del %3
echo x > 1
goto sauve
:fin
--------

--
bitwyse
"Être sage, ça peut être con des fois..."
http://www.le-maquis.net
Roger Combe-Ferrier
Le #14405091
J'essaye ça dès que je peux, mais ce sera peut-être seulement demain. Y'a rien de plus occupé qu'un vieux retraité ;-)
Merci et A+

CriCri wrote:
CriCri a écrit :

sg.bat



Un petit oubli corrigé:

sg.bat
--------
rem bat pour sauvegarder un répertoire jusqu'au nombre de fois choisi
@echo off
rem cherche le fichier-compteur courant
rem rajoute des nombres entre les parenthèses jusqu'au max désiré
for %%f in (1 2 3) do if exist %%f goto %%f
rem
rem 1er fois
1


if %3 == 1 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre +
1 del 1
echo x > 2
goto sauve
rem
rem 2ième fois
2


if %3 == 2 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre +
1 del 2
echo x > 3
goto sauve
rem
rem 3ième fois
3


if %3 == 3 goto efface
rem efface fichier-compteur courant, crée un nouveau avec un nombre +
1 del 3
echo x > 4
goto sauve
rem fin des blocs, en rajouter ici jusqu'au max désiré
rem
rem fais une sauvegarde incrémentielle
sauve


xcopy %1 %2 /i /d /s /r /c /q
goto fin
rem
rem supprime la sauvegarde et recommence de zéro
efface


rmdir %2 /s /q
del %3
echo x > 1
goto sauve
fin


--------


CriCri
Le #14405051
CriCri a écrit :

sg.bat



Un brin plus simple et plus court...
(la suppression + création de fichiers inutiles restaient d'une autre
idée, rejetée).

sg.bat
--------
rem bat pour faire une sauvegarder incrémentielle d'un répertoire
rem jusqu'au nombre de fois choisi, puis recommencer de zéro
@echo off
rem cherche le fichier-compteur courant
rem (rajoute des nombres entre les parenthèses jusqu'au max désiré)
for %%f in (1 2 3) do if exist %%f goto %%f
rem
rem 1er fois
:1
if %3 == 1 goto efface
rem renomme fichier-compteur courant à nombre + 1
ren 1 2
goto sauve
rem
rem 2ième fois
:2
if %3 == 2 goto efface
rem renomme fichier-compteur courant à nombre + 1
ren 2 3
goto sauve
rem
rem 3ième fois
:3
if %3 == 3 goto efface
rem renomme fichier-compteur courant à nombre + 1
ren 3 4
goto sauve
rem -------------------------------------------------
rem fin des blocs, en rajoute ici jusqu'au max désiré
rem
rem fais une sauvegarde incrémentielle
:sauve
xcopy %1 %2 /i /d /s /r /c /q
goto fin
rem
rem supprime la sauvegarde entièrement et recommence de zéro
:efface
rmdir %2 /s /q
ren %3 1
goto sauve
:fin
--------

--
bitwyse
"Être sage, ça peut être con des fois..."
http://www.le-maquis.net
Roger Combe-Ferrier
Le #14404881
CriCri wrote:
CriCri a écrit :

sg.bat



Un brin plus simple et plus court...
(la suppression + création de fichiers inutiles restaient d'une autre
idée, rejetée).



Pauvre, pauvre vieux :-(((
Je viens de m'y mettre et, comme j'y connais rien dans les batch, j'essaye de deviner.
Je "subodore" que les %%f et les autres %1, %2 et %3 doivent être remplacés par les batch que j'ai fait et qui marchent au coup par coup, mais j'essayé et rien a faire, je n'obtiens qu'un éclair noir. J'ai même mis un echo on au début et un pause à la fin pour suivre le déroulement, mais bernique.
Voilà ce que c'est qu'un vieillard, il faut le prendre par la main pour éviter qu'il se perde ;-)
Alord, Cricri, si tu veux bien jouer au SaintBernrd ?

sg.bat
--------
rem bat pour faire une sauvegarder incrémentielle d'un répertoire
rem jusqu'au nombre de fois choisi, puis recommencer de zéro
@echo off
rem cherche le fichier-compteur courant
rem (rajoute des nombres entre les parenthèses jusqu'au max désiré)
for %%f in (1 2 3) do if exist %%f goto %%f
rem
rem 1er fois
1


if %3 == 1 goto efface
rem renomme fichier-compteur courant à nombre + 1
ren 1 2
goto sauve
rem
rem 2ième fois
2


if %3 == 2 goto efface
rem renomme fichier-compteur courant à nombre + 1
ren 2 3
goto sauve
rem
rem 3ième fois
3


if %3 == 3 goto efface
rem renomme fichier-compteur courant à nombre + 1
ren 3 4
goto sauve
rem -------------------------------------------------
rem fin des blocs, en rajoute ici jusqu'au max désiré
rem
rem fais une sauvegarde incrémentielle
sauve


xcopy %1 %2 /i /d /s /r /c /q
goto fin
rem
rem supprime la sauvegarde entièrement et recommence de zéro
efface


rmdir %2 /s /q
ren %3 1
goto sauve
fin


--------


Publicité
Poster une réponse
Anonyme