Une condition qui n'est pas vérifiée [Batch] - Shell/Batch - Programmation
Marsh Posté le 15-06-2010 à 13:18:17
Peux-tu nous mettre la trace d'exécution du script.
Juste un petit détail, pour la détermination de DD, MM et YY il est inutile d'utiliser for, les commandes set sont suffisantes.
Il faut bien s'assurer du format de la valeur de DATE.
Sur mon PC, elle est au format 'jj/mm/aaa' ce qui donne :
@ECHO OFF |
Résultat
DATE = [15/06/2010] = [15]/[06]/[2010] |
Jean-Pierre.
Marsh Posté le 15-06-2010 à 17:25:30
Le système est en anglais
En fait j'ai supprimé un IF et ca marche bien. Pas besoin de 2 IF en fait, j'en met 1 si il respecte la condition il suit le IF sinon il poursuit le code
Merci quand même
Marsh Posté le 09-06-2010 à 17:33:21
Bonjour à tous,
J'ai un souci avec un script DOS dont je n'arrive pas à éclaircir le mystère, mais je vous explique d'abord mon script.
Mon script copie des fichiers logs du jour (ou de la veille le cas échéant) et m'envoie leur contenu dans un mail.
1 - Le fichier crée un DossierA
2 - Le script vérifie si il existe des fichiers crées aujourd'hui dans un DossierB
2.1 - Si oui, il va a 7
2.2 - Si non, il va a 3 pour changer la date
3 - Les fichiers n'ont pas été copié donc je vais changer la date du jour avec la date d'hier pour copier les fichiers de la veille
3.1 - Si aujourd'hui on est le 1er tu vas changer le mois (il va a 4)
3.2 - Si aujourd'hui on est pas le 1er tu va a 5 pour changer le jour
4 - On va vérifier le mois
4.1 - Si le mois est pair alors le jour de la veille est 31
4.2 - Si le mois est impair alors le jour de la veille est 30
4.3 - Si le mois est Février alors le jour de la veille est 28
4.4 - En plus d'un des 3 trois cas précédents, on change le numéro du mois avec le numéro du mois d'avant.
5 - Je change le numéro du jour par celui de la veille
6 - Maintenant qu'on a mis changé la date d'aujourd'hui par celle de la veille on ré-essaye de copier les fichiers de la veille.
7 - J'écris le contenu de tous les fichiers récupérés dans un fichier texte que je copie dans un DossierC
8 - J'envoie le fichier texte final par mail.
Voila pour le déroulement, voici maintenant le code :
Le soucis est que pour la première condition :
IF exist c:\DossierA\*.log GOTO suite
IF not exist c:\DOssierA\*.log GOTO dateavant
Il ne la vérifie pas ! et change la date n'importe comment !
Donc selon vous, qu'est-ce qui cloche?
---------------
Hypershade's Gallery