Programme Batch Dos / probleme "IF"
Résolu/Fermé
Spectoo
Messages postés
18
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
10 avril 2009
-
6 nov. 2008 à 10:49
j'ai vendu mon nick - 28 oct. 2009 à 19:22
j'ai vendu mon nick - 28 oct. 2009 à 19:22
A voir également:
- Programme Batch Dos / probleme "IF"
- Programme demarrage windows 10 - Guide
- Fichier batch - Guide
- Programme démarrage windows 10 - Guide
- Ce message d'erreur apparaît sur l'ordinateur d'elena. que peut-on dire du programme gwxux ? - Forum logiciel systeme
- Echo off batch ✓ - Forum Autoit / batch
6 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
6 nov. 2008 à 11:06
6 nov. 2008 à 11:06
Bonjour,
Tu as un peu oublié les %
if "%VERI1%" NEQ "%VERI2%" (XCOPY "C:\TEST\"*.*/s/y C:\BACKUP\%ANNEE%\%MOIS%\%JJ%\)
exit
Tu as un peu oublié les %
if "%VERI1%" NEQ "%VERI2%" (XCOPY "C:\TEST\"*.*/s/y C:\BACKUP\%ANNEE%\%MOIS%\%JJ%\)
exit
Spectoo
Messages postés
18
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
10 avril 2009
6 nov. 2008 à 12:00
6 nov. 2008 à 12:00
jsuis un ane !
^^
merci beaucoup !
^^
merci beaucoup !
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
6 nov. 2008 à 12:30
6 nov. 2008 à 12:30
Mais non, mais non, allons !
Spectoo
Messages postés
18
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
10 avril 2009
6 nov. 2008 à 13:51
6 nov. 2008 à 13:51
Alors ... vu que c'était vraiment simple et que je ne vous ai pas donné beaucoup de travail, je vais corser la chose.
La recherche de date de modification me renvoie ceci par exemple ceci :
06/11/2008 11:59 0 TEST.txt
Ce qui m'intéresserai maintenant c'est de pouvoir comparer exactement cette date et cette heure à la date et l'heure actuelle ... je suppose qu'une fonction ressemblant a "explode" utilisée en php pourrait sans doute faire ce travail.
Avez-vous une idée ?
La recherche de date de modification me renvoie ceci par exemple ceci :
06/11/2008 11:59 0 TEST.txt
Ce qui m'intéresserai maintenant c'est de pouvoir comparer exactement cette date et cette heure à la date et l'heure actuelle ... je suppose qu'une fonction ressemblant a "explode" utilisée en php pourrait sans doute faire ce travail.
Avez-vous une idée ?
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
6 nov. 2008 à 15:38
6 nov. 2008 à 15:38
A ma connaissance il n'existe pas de fonction MS-DOS sous XP permettant d'effectuer des opérations sur les heures ou sur les dates. A vérifier quand même. Dans l'ignorance je te propose ce qui suit :
Ce qui m'intéresserai maintenant c'est de pouvoir comparer exactement cette date et cette heure à la date et l'heure actuelle ... je suppose qu'une fonction ressemblant a "explode" utilisée en php pourrait sans doute faire ce travail.
- Je n'ai pas très bien compris pourquoi tu souhaites comparer "exactement" l'horaire actuelle avec celle du fichier.
- Pour illustrer le problème j'ai mis en "dur" dans les IF, la date et l'horaire du fichier.
J'espère que ça correspond à ton attente. Effectue des tests de ton côté, tiens-moi informé.
cls SET "cur_date=%DATE:~0,2%/%DATE:~3,2%/%DATE:~6,4%" rem Sauvegarde de l'horaire courant. SET "TTIME=%TIME%" rem Pour test SET "TTIME=11:59 00" rem ------------------------ rem Restauration éventuelle du zéro manquant en tête d'un horaire dont le nb. rem d'heures est inférieur à 10. Ex: 0:39:01,51 IF "%TTIME:~0,1%" == " " ( SET "TTIME=0%TTIME:~1,8%" ) SET "cur_time=%TTIME:~0,2%:%TTIME:~3,2% %TTIME:~6,2%" rem Pour test : IF "%cur_date%" == "06/11/2008" ( ECHO OK ECHO cur_date %cur_date% ) IF "%cur_time%" == "11:59 00" ( ECHO OK ECHO cur_time %cur_time% ) rem ------------------------
Ce qui m'intéresserai maintenant c'est de pouvoir comparer exactement cette date et cette heure à la date et l'heure actuelle ... je suppose qu'une fonction ressemblant a "explode" utilisée en php pourrait sans doute faire ce travail.
- Je n'ai pas très bien compris pourquoi tu souhaites comparer "exactement" l'horaire actuelle avec celle du fichier.
- Pour illustrer le problème j'ai mis en "dur" dans les IF, la date et l'horaire du fichier.
J'espère que ça correspond à ton attente. Effectue des tests de ton côté, tiens-moi informé.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Spectoo
Messages postés
18
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
10 avril 2009
6 nov. 2008 à 17:31
6 nov. 2008 à 17:31
oh merci beaucoup ! quel rapidité :)
En fait je suis en train de me demander si j'ai réellement besoin de comparer ces dates et heures; je m'explique :
il s'agit de l'optimisation d'un backup ... si les fichiers n'ont pas changé, il n'écrase pas l'ancienne version. Mais du coup je me dis que de faire le test de différence (NEQ) est suffisant car si le fichier a changé, la date de modification est forcément supérieur a celle du fichier sauvegardé donc pas besoin de plus de vérif.
En tout cas, je garde ce bout de code qui servira certainement un de ces jours !
Merci beaucoup pour ta collaboration ; j'ajouterai un "developped by Cchristian" dans le prog !! ;)
En fait je suis en train de me demander si j'ai réellement besoin de comparer ces dates et heures; je m'explique :
il s'agit de l'optimisation d'un backup ... si les fichiers n'ont pas changé, il n'écrase pas l'ancienne version. Mais du coup je me dis que de faire le test de différence (NEQ) est suffisant car si le fichier a changé, la date de modification est forcément supérieur a celle du fichier sauvegardé donc pas besoin de plus de vérif.
En tout cas, je garde ce bout de code qui servira certainement un de ces jours !
Merci beaucoup pour ta collaboration ; j'ajouterai un "developped by Cchristian" dans le prog !! ;)
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
6 nov. 2008 à 18:08
6 nov. 2008 à 18:08
Merci pour ce retour sympathique, à bientôt j'espère pour de nouvelles aventures CCM.
samen123
Messages postés
1
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
28 octobre 2009
>
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
28 oct. 2009 à 19:14
28 oct. 2009 à 19:14
Bonjour cchristian
Moi aussi je vais abuser de ta gentillesse avec un peu de retard.Car en cherchant sur le forum CMC j'ai truvé le texte de ton aide pour quelqu'un datant de Nov 2008.J'ai besoin d'une petite aide si c'est possible.
Voilà j'ai fait un fichier bat pour sauvegarder mes données d'une base de données que j'utilise chaque jour
sur ma clé usb qui se trouve dans mon poste à la racine e:
le fichier bat est le suivant:
copy c:\dossier1\fichier1.fff e:
copy c:\dossier1\dossier2\*.* e:\dossier2
Pour la première ligne il n'y a pas de problèmes.(un fichier1 archive est sauvegardé dans l'usb)
Mais pour la deuxieme ligne ,il me recopie tous les fichiers du dossier2(une centaine)alors qu'ils existent tous dans mon dossier2 de l'usb, sauf un, le dérnier, celui du jour de la sauvegarde ,et bien sûr la deuxieme ligne met beaucoup de temp à se réaliser.Alors que s' il copiait que le ou les fichiers qui n'existent pas dans e:\dossier2 et les autres non puisqu'ils y sont la sauvegarde se passerait en une fraction de secondes.
Je sais qu'il faut utiliser un IF ,mais je n'arrive pas à réussir mon programme .Alors si tu peux m'aider j'en serais très reconnaissant.MERCI
Moi aussi je vais abuser de ta gentillesse avec un peu de retard.Car en cherchant sur le forum CMC j'ai truvé le texte de ton aide pour quelqu'un datant de Nov 2008.J'ai besoin d'une petite aide si c'est possible.
Voilà j'ai fait un fichier bat pour sauvegarder mes données d'une base de données que j'utilise chaque jour
sur ma clé usb qui se trouve dans mon poste à la racine e:
le fichier bat est le suivant:
copy c:\dossier1\fichier1.fff e:
copy c:\dossier1\dossier2\*.* e:\dossier2
Pour la première ligne il n'y a pas de problèmes.(un fichier1 archive est sauvegardé dans l'usb)
Mais pour la deuxieme ligne ,il me recopie tous les fichiers du dossier2(une centaine)alors qu'ils existent tous dans mon dossier2 de l'usb, sauf un, le dérnier, celui du jour de la sauvegarde ,et bien sûr la deuxieme ligne met beaucoup de temp à se réaliser.Alors que s' il copiait que le ou les fichiers qui n'existent pas dans e:\dossier2 et les autres non puisqu'ils y sont la sauvegarde se passerait en une fraction de secondes.
Je sais qu'il faut utiliser un IF ,mais je n'arrive pas à réussir mon programme .Alors si tu peux m'aider j'en serais très reconnaissant.MERCI
salut
la commande XCOPY avec l'option /M ne te conviendrait-elle pas ?
elle te permet de copier les fichiers dont l'attribut A (=à archiver) est levé (tout en le baissant lors de la copie)
c'est la méthode rudimentaire pour faire de la sauvegarde incrémentale... ce qui semble être ce que tu désires.
la commande XCOPY avec l'option /M ne te conviendrait-elle pas ?
elle te permet de copier les fichiers dont l'attribut A (=à archiver) est levé (tout en le baissant lors de la copie)
c'est la méthode rudimentaire pour faire de la sauvegarde incrémentale... ce qui semble être ce que tu désires.