Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Suis-je trop gourmand?

15 réponses
Avatar
Roger Combe-Ferrier
Salut la compagnie.
J'ai =E9crit un batch nomm=E9 BkpGestion pour faire une sauvegarde =
incr=E9mentale de mon R=E9pertoire Gestion sur ma cl=E9 USB. En voici le =
contenu:

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

Qui marche au poil.
J'en ai =E9crit un second nomm=E9 RmDir En voici le contenu:

rmdir h:\Sauvegarde /s /q

Qui efface la sauvegarde.

Je voudrais ajouter dans le premier une variable incr=E9ment=E9e et =
ajouter ensuite une condition IF qui lance le RmDir quand la variable =
atteint une valeur donn=E9e, remette la variable =E0 z=E9ro et relance =
le batch de sauvegarde.

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

A vos bons cours

Cordialement

--------------------
Le vieux - Exigeant
--------------------

********************************************
Entre le Pass=E9 qui nous =E9chappe *
et l'Avenir que nous ne savons pas *
est le Pr=E9sent avec tous nos Devoirs*
(A. De Gasparin) *
********************************************

10 réponses

1 2
Avatar
CriCri
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
Avatar
Roger Combe-Ferrier
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.
Avatar
Jambedours
"Roger Combe-Ferrier" écrivait
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.
Avatar
Jambedours
Jambedours écrivait news:XnF995BE33544684yakafokon@
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
----------------
Avatar
CriCri
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
Avatar
CriCri
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
Avatar
CriCri
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
Avatar
Roger Combe-Ferrier
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


--------


Avatar
CriCri
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
Avatar
Roger Combe-Ferrier
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


--------


1 2