FORUM Tom's Hardware » Programmation » Autre » fichier batch
 

fichier batch

Il y a 282 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : fichier batch
 
Plus d'informations

bonjour,
 
j'ai fait un petit batch pour faire mes sauvegarde à la boite.
il fonctionne bien et me cré un dossier daté tout les jours.
pour limiter la taille du dossier de sauvegarde, j'aurai voulu garder au maximmum 10 sauvegardes et donc effacer tous les jours la plus vieille automatiquement.
est ce que c'est possible ?
 
voici le batch (il est simple car je ne suis pas expérimenté)
 
cd\
e:
md sauvegarde\Gestion\profil
md sauvegarde\Gestion\soc03
md sauvegarde\paye\Soc01
md sauvegarde\financier\soc03
md sauvegarde\compta\soc03
c:
xcopy C:\APISOFT\COMP_EXP\Soc01 e:\sauvegarde\compta\soc03 /e
xcopy C:\APISOFT\FIN_EXP\soc03 e:\sauvegarde\financier\soc03 /e
xcopy C:\APISOFT\PAYE_EXP\soc01 e:\sauvegarde\paye\soc01 /e
xcopy C:\APISOFT\GEST_EXP\SOC03 e:\sauvegarde\Gestion\soc03 /e
f:
xcopy F:\PROFILAGE\APISOFT\GEST_EXP\PROFIL e:\sauvegarde\Gestion\profil /e
rename e:\sauvegarde "sauvegarde %date:~0,2%.%date:~3,2%.%date:~6,4% - %time:~0,2%h%time:~3,2%"
 
pause "Sauvegarde Terminée"

pourquoi faire cent fois la même chose ?
Plus d'informations

les e: c: et f: ne servent à rien, tout comme le cd \
 
pour les md spécifie le chemin complet : E:\sauvegarde\Gestion\profil car sinon ce n'est pas garanti que tu soit à la racine de E:
 
pour la question, c'est clairement la limite entre des petits scripts batch et un vrai prog. ce n'est pas impossible, mais ça impose de faire des bidouillages pas beau qu'il ne faudrai pas voir en production, surtout pour des choses aussi sensibles que de la suppression de vieux backup.

zeb
Profil : Modérateur libre
Plus d'informations

dany1966, j'ai une soluce pour toi :

dir /b "e:\sauvegarde " | awk " NR>10 { system( \"rmdir \"$0 ) } "


 
awk n'existe pas nativement sous Windows, mais tu trouveras facilement un portage sous Win32 de ce génial outil issu du monde UNIX.
 
Je te propose de récupérer gawk des GNU utilities for Win32.
 
Soit tu installes tous ces outils :love:, soit tu te contentes de copier gawk.exe dans un des dossiers de la variable PATH.
 
Perso, j'ai créé le dossier C:\WINDOWS\Command\Unx, j'y ai directement copié toutes les commandes de unxutils et j'ai ajouté ce chemin dans PATH (Propriétés Système/Variables d'environnement/Variables Système/Path)

Plus d'informations

Salut zeb
j' ai copié le prog gawk.exe dans le dossier C:\WINDOWS\command\unx
ce programme à l'air d'etre reconnu lorsque je le lance sous dos.
j'ai ensuite créé la variable PATH  valeur C:\WINDOWS\command\unx
 
j' ai implanté ta ligne de commande dans un petit bath pour essai, mais ça ne fonctionne pas.
je travail sur xp pro pour faire les essais.
 
 
cd\
x:
md bakup  
xcopy x:\trayit BAKUP /e
rename BAKUP "bakup %date:~0,2%.%date:~3,2%.%date:~6,4% - %time:~0,2%h%time:~3,2%"
dir /b "x:\bakup " | awk " NR>2 { system( \"rmdir \"$0 ) } "
 
pause "sauvegarde terminée"
 
 
 
merci d'avance.


Message édité par dany1966 le 27-09-2006 à 23:19:10
zeb
Profil : Modérateur libre
Plus d'informations

+ d'info concernant propriété système : Vas dans le panneau de configuration, cherche et trouve Système. Si tu double-cliques dessus, il devient : Propriété système [:spamafote]
 
Batchy te l'a déjà dit :

cd\
x:

C'est ridicule !!!!! (Si tu donnes l'impression de ne pas tenir compte de ce que l'on te dit, plus personne ne va t'aider :o )
 

dir /b /o-d "x:\bakup " | awk " NR>2 { system( \"rmdir \"$0 ) } "


 
J'ai oublié de préciser qu'il fallait trier les répertoires dans l'ordre anté-chronologique, ce que fait le /o-d ajouté.
 
Pour être sûr de toi, qu'est-ce que ça donne, ça :

dir /b /o-d "x:\bakup "


Et ça :

dir /b /o-d "x:\bakup " | awk "{ print NR\" \"$0 }"


 
?

Plus d'informations

pour le cd\ c'était un oubli suite à in copier coller
 
 
dir /b /o-d "x:\bakup "
çà me donne fichier introuvable
 
si non les autres ligne ne change rien.

zeb
Profil : Modérateur libre
Plus d'informations

dir /b /o-d "x:\bakup "
fichier introuvable ?
 
Ben, tu n'as pas de fichier qui s'appelle comme ça. [:spamafote]
Tu veux bien vérifier le lecteur, le chemin, les fichiers, le nom des fichiers, etc.
 
En passant backup prend un C. Est-ce le problème ?

pourquoi faire cent fois la même chose ?
Plus d'informations

pourquoi un espace entre le chemin et le doublequote ?

Plus d'informations

mon fichier bakup existe mais il est suivi de la variable date et time
 
rename BAKUP "bakup %date:~0,2%.%date:~3,2%.%date:~6,4% - %time:~0,2%h%time:~3,2%"  
 

Plus d'informations

personne n' a de solution à mon pb

zeb
Profil : Modérateur libre
Plus d'informations

Tu essaies de comprendre ce qu'on te propose ? Par quoi as-tu remplacé x dans l'expression suivante ?

dir /b /o-d "x:\bakup "

Plus d'informations

x: est la lettre d'un disque externe donc je ne l'ai pas remplacé

zeb
Profil : Modérateur libre
Plus d'informations

Y-a-t'il des fichiers bakup sur ce disque ?


Message édité par zeb le 04-10-2006 à 02:43:10
Plus d'informations

oui car je les cré avec MD....
j'en n'ai actuellement 5 du genre "bakup 03.10.2006 - 21h54"

zeb
Profil : Modérateur libre
Plus d'informations

alors dir /b /o-d "x:\bakup " devrait renvoyé quelque chose [:spamafote]

Plus d'informations

ça me renvoi "fichier introuvable".
mais c' est un peu normale puisque le nom de mon fichier bakup est suivi de la date.
il faudrait un paramètre pour indiquer " tous les fichiers commençant par bakup "

Profil : Pointeur
Plus d'informations

bha

backup*

zeb
Profil : Modérateur libre
Plus d'informations

Arghh.... Merci KangOl.

dir /b /o-d "x:\bakup *"

Plus d'informations

si je tape la commande : dir /b /o-d "x:\bakup *"
j' obtiens :
 
 
C:\Documents and Settings\Daniel\Bureau>x:
 
X:\>dir /b /o-d "x:\bakup *"
bakup 14.10.2006 -  3h54
bakup 14.10.2006 -  3h53
bakup 14.10.2006 -  3h55
bakup 14.10.2006 -  3h52
bakup 14.10.2006 -  3h45
bakup 14.10.2006 -  3h43
bakup 05.10.2006 - 22h32
 
X:\>pause "sauvegarde terminee"
Appuyez sur une touche pour continuer...
 
 
 
si je tape la commande :
 
x:  
md bakup  
xcopy x:\trayit BAKUP /e  
rename BAKUP "bakup %date:~0,2%.%date:~3,2%.%date:~6,4% - %time:~0,2%h%time:~3,2%"  
dir /b /o-d "x:\bakup *"   | gawk  " NR>2 { system( \"rmdir \"$0 ) } "  
 
pause "sauvegarde terminée"  
 
j' obtiens :
 
 
 
C:\Documents and Settings\Daniel\Bureau>x:
 
X:\>md bakup
 
X:\>xcopy x:\trayit BAKUP /e
X:\trayit\gosmall.gif
X:\trayit\readme.txt
X:\trayit\trayit!.dll
X:\trayit\trayit!.exe
X:\trayit\trayit.htm
5 fichier(s) copié(s)
 
X:\>rename BAKUP "bakup 14.10.2006 -  4h02"
 
X:\>dir /b /o-d "x:\bakup *"   | gawk " NR>2 { system( \"rmdir \"$0 ) } "
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.
 
X:\>pause "sauvegarde terminÚe"
Appuyez sur une touche pour continuer...

zeb
Profil : Modérateur libre
Plus d'informations

x:  
md bakup  
xcopy x:\trayit BAKUP /e  
rename BAKUP "bakup %date:~0,2%.%date:~3,2%.%date:~6,4% - %time:~0,2%h%time:~3,2%"  
dir /b /o-d "x:\bakup *"   | gawk  " NR>2 { system( \"ECHO \"$0 ) } "


 
Qu'est-ce que ça donne ?
Et si tu remplaces ECHO par DIR ?

Plus d'informations

ça donne :
 
 
C:\Documents and Settings\Daniel\Bureau>x:
 
X:\>md bakup
 
X:\>xcopy x:\trayit BAKUP /e
X:\trayit\gosmall.gif
X:\trayit\readme.txt
X:\trayit\trayit!.dll
X:\trayit\trayit!.exe
X:\trayit\trayit.htm
5 fichier(s) copié(s)
 
X:\>rename BAKUP "bakup 17.10.2006 -  0h12"
 
X:\>dir /b /o-d "x:\bakup *"     | gawk  " NR>2 { system( \"ECHO \"$0 ) } "
bakup 17.10.2006 -  0h07
bakup 17.10.2006 -  0h04
bakup 17.10.2006 -  0h03
bakup 17.10.2006 -  0h01
bakup 16.10.2006 - 23h56
bakup 16.10.2006 - 23h55
bakup 16.10.2006 - 23h54
bakup 16.10.2006 - 23h53
bakup 16.10.2006 - 23h51
bakup 16.10.2006 - 23h50
bakup 16.10.2006 - 23h49
bakup 16.10.2006 - 23h47
bakup 16.10.2006 - 23h46
 
X:\>pause "sauvegarde terminÚe"
Appuyez sur une touche pour continuer...
 
 
 
et si je remplace echo par dir ça donne :
 
 
C:\Documents and Settings\Daniel\Bureau>x:
 
X:\>md bakup
 
X:\>xcopy x:\trayit BAKUP /e
X:\trayit\gosmall.gif
X:\trayit\readme.txt
X:\trayit\trayit!.dll
X:\trayit\trayit!.exe
X:\trayit\trayit.htm
5 fichier(s) copié(s)
 
X:\>rename BAKUP "bakup 17.10.2006 -  0h14"
 
X:\>dir /b /o-d "x:\bakup *"     | gawk  " NR>2 { system( \"dir \"$0 ) } "
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 Le volume dans le lecteur X s'appelle CBI Poitou
 Le numéro de série du volume est E44B-9A81
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
 
 Répertoire de X:\
 
Fichier introuvable
 
X:\>pause "sauvegarde terminÚe"
Appuyez sur une touche pour continuer...
 

zeb
Profil : Modérateur libre
Plus d'informations